-#!/usr/bin/env python
-
-# Copyright (c) 2007, Intel Corporation
-# All rights reserved. This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-"""This is an XML API that uses a syntax similar to XPath, but it is written in
- standard python so that no extra python packages are required to use it."""
-
-import xml.dom.minidom
-
-def XmlList(Dom, String):
- """Get a list of XML Elements using XPath style syntax."""
- if String == "" or Dom == None or not isinstance(Dom, xml.dom.Node):
- return []
-
- if String[0] == "/":
- String = String[1:]
-
- if Dom.nodeType==Dom.DOCUMENT_NODE:
- Dom = Dom.documentElement
-
- tagList = String.split('/')
- nodes = [Dom]
- childNodes = []
- index = 0
- end = len(tagList) - 1
- while index <= end:
- for node in nodes:
- if node.nodeType == node.ELEMENT_NODE and node.tagName == tagList[index]:
- if index < end:
- childNodes.extend(node.childNodes)
- else:
- childNodes.append(node)
-
- nodes = childNodes
- childNodes = []
- index += 1
-
- return nodes
-
-def XmlElement (Dom, String):
- """Return a single element that matches the String which is XPath style syntax."""
- if String == "" or Dom == None or not isinstance(Dom, xml.dom.Node):
- return ""
-
- if String[0] == "/":
- String = String[1:]
-
- if Dom.nodeType==Dom.DOCUMENT_NODE:
- Dom = Dom.documentElement
-
- tagList = String.split('/')
- childNodes = [Dom]
- index = 0
- end = len(tagList) - 1
- while index <= end:
- for node in childNodes:
- if node.nodeType == node.ELEMENT_NODE and node.tagName == tagList[index]:
- if index < end:
- childNodes = node.childNodes
- else:
- return node
- break
-
- index += 1
-
- return ""
-
-def XmlElementData (Dom):
- """Get the text for this element."""
- if Dom == None or Dom == '' or Dom.firstChild == None:
- return ''
-
- return Dom.firstChild.data.strip(' ')
-
-def XmlAttribute (Dom, String):
- """Return a single attribute that named by String."""
- if Dom == None or Dom == '':
- return ''
-
- try:
- return Dom.getAttribute(String).strip(' ')
- except:
- return ''
-
-def XmlTopTag(Dom):
- """Return the name of the Root or top tag in the XML tree."""
- if Dom == None or Dom == '' or Dom.firstChild == None:
- return ''
- return Dom.firstChild.nodeName
-
-
-# This acts like the main() function for the script, unless it is 'import'ed into another
-# script.
-if __name__ == '__main__':
-
- # Nothing to do here. Could do some unit tests.
- pass