OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: [xml-dev] code challenge

[ Lists Home | Date Index | Thread Index ]

Thanks Dare, certainly short. I supppose I should've included the rule :
using minimal core DOM only.
Good job Chianti's cheap here...

>C#:
>
>  XmlNodeList getChildren(XmlDocument doc){ 	return
>doc.SelectNodes("//*");  }
>
>Java - Xalan:
>
>  NodeList getChildren(Document doc){ return
>XPathAPI.selectNodeList(doc, "//*");  }
>
>
>--
>PITHY WORDS OF WISDOM
>The buddy system is essential to your survival; it gives the enemy
>somebody else to shoot at.
>
>This posting is provided "AS IS" with no warranties, and confers no
>rights.
>
>
>
>> -----Original Message-----
>> From: Danny Ayers [mailto:danny666@virgilio.it]
>> Sent: Thursday, August 08, 2002 3:37 PM
>> To: Xml-Dev
>> Subject: [xml-dev] code challenge
>>
>>
>> It may be questionable form to talk code on the list, but for
>> them that like to roll their sleeves up here's a bit of fun.
>>
>> I was moving an app to a different environment when (surprise
>> surprise) it broke. After a lot of nosing around, I found the
>> culprit - getting a list of all elements in a populated XML
>> DOM doc this way :
>>
>> NodeList elements =
>>     document.getDocumentElement().getElementsByTagNameNS("*", "*");
>>
>> It seems the DOM library in the new environment didn't
>> support this and (DOM 1 style??) ignored the ns parameter and
>> always returned no elements at all.
>>
>> Ok, assuming list subscribers have coding calibre a fraction
>> of their verbal skills, producing a list of all elements by
>> other means would be no challenge at all (if there's another
>> built-in that can do this directly, I humbly apologise for
>> wasting your time). However (for reasons I'd rather not go
>> into), I need this done in as few lines of code as possible.
>> My attempt is below - the use of a global looks ugly to me,
>> but it works.
>>
>> The prize is a bottle of Chianti (winner collects ;-)
>>
>> Cheers,
>> Danny.
>>
>>
>> List elements = new ArrayList();
>>
>> public void getChildren(Element element) {
>>
>>     elements.add(element);
>>
>>     Node child;
>>     Node next = (Node) element.getFirstChild();
>>     while ((child = next) != null) {
>>         next = child.getNextSibling();
>>             if (child.getNodeType() == Node.ELEMENT_NODE) {
>>                 getChildren((Element) child);
>>             }
>>         }
>> }
>>
>>
>>
>> ---
>> Danny Ayers
>> <stuff> http://www.isacat.net </stuff>
>>
>> Idea maps for the Semantic Web
>> http://ideagraph.net
>>
>>
>> -----------------------------------------------------------------
>> The xml-dev list is sponsored by XML.org
>> <http://www.xml.org>, an initiative of OASIS
><http://www.oasis-open.org>
>
>The list archives are at http://lists.xml.org/archives/xml-dev/
>
>To subscribe or unsubscribe from this list use the subscription
>manager: <http://lists.xml.org/ob/adm.pl>
>





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS