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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: xml parsing how-to?

[ Lists Home | Date Index | Thread Index ]
  • From: Lars Marius Garshol <larsga@garshol.priv.no>
  • To: <xml-dev@lists.oasis-open.org>
  • Date: 07 Jun 2000 12:38:01 +0200


* rsanford@nolimitsystems.com
| 
| i have line after line of code that looks at an element with a
| hard-coded name and then gets the value and it is ugly. there _has_
| to be a better way. somebody please tell me there is a better way.

Two helper functions I have found very useful when working with the
DOM are these:

def find_first_child(parent, type, name):
    for child in parent._get_childNodes():
        if child._get_nodeType() == type and child._get_nodeName() == name:
            return child

def data(parent, alternative = None):
    if parent == None: return alternative
    
    content = []
    for child in parent._get_childNodes():
        if child._get_nodeType() == TEXT_NODE or \
           child._get_nodeType() == CDATA_SECTION_NODE:
            content.append(child._get_nodeValue())

    return string.join(content, "")
  
They are written in Python, but I think any programmer can understand
them. This enables code to be written like this:

def handle_rss_item(item):
  title = data(find_first_child(ELEMENT_NODE, "title"), "<no title>")
  link  = data(find_first_child(ELEMENT_NODE, "link"))
  descr = data(find_first_child(ELEMENT_NODE, "description"), "")

  # do useful stuff with the contents of the title, link and
  # description elements

Is this what you wanted?

--Lars M.


***************************************************************************
This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@xml.org&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************




 

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

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