summaryrefslogtreecommitdiff
path: root/Tools/Python/XmlRoutines.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/Python/XmlRoutines.py')
-rwxr-xr-xTools/Python/XmlRoutines.py195
1 files changed, 0 insertions, 195 deletions
diff --git a/Tools/Python/XmlRoutines.py b/Tools/Python/XmlRoutines.py
deleted file mode 100755
index 05abb272ad..0000000000
--- a/Tools/Python/XmlRoutines.py
+++ /dev/null
@@ -1,195 +0,0 @@
-#!/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 == None or String == "" or Dom == None or Dom == "":
- return []
- if Dom.nodeType==Dom.DOCUMENT_NODE:
- Dom = Dom.documentElement
- if String[0] == "/":
- String = String[1:]
- tagList = String.split('/')
- nodes = [Dom]
- index = 0
- end = len(tagList) - 1
- while index <= end:
- childNodes = []
- 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 XmlNode (Dom, String):
- """Return a single node that matches the String which is XPath style syntax."""
- if String == None or String == "" or Dom == None or Dom == "":
- return ""
- if Dom.nodeType==Dom.DOCUMENT_NODE:
- Dom = Dom.documentElement
- if String[0] == "/":
- String = String[1:]
- tagList = String.split('/')
- index = 0
- end = len(tagList) - 1
- childNodes = [Dom]
- 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 XmlElement (Dom, String):
- """Return a single element that matches the String which is XPath style syntax."""
- try:
- return XmlNode (Dom, String).firstChild.data.strip()
- except:
- 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, AttName):
- """Return a single attribute named AttName."""
- if Dom == None or Dom == '':
- return ''
- try:
- return Dom.getAttribute(AttName)
- except:
- return ''
-
-def XmlTopTag(Dom):
- """Return the name of the Root or top tag in the XML tree."""
- return Dom.firstChild.nodeName
-
-def XmlParseFile (FileName):
- """Parse an XML file into a DOM and return the DOM."""
- try:
- f = open(FileName, 'r')
- Dom = xml.dom.minidom.parse(f)
- f.close()
- return Dom
- except:
- return xml.dom.minidom.parseString('<empty/>')
-
-def XmlParseString (Str):
- """Parse an XML string into a DOM and return the DOM."""
- try:
- return xml.dom.minidom.parseString(Str)
- except:
- return xml.dom.minidom.parseString('<empty/>')
-
-def XmlParseFileSection (FileName, Tag):
- """Parse a section of an XML file into a DOM(Document Object Model) and return the DOM."""
- try:
- f = open(FileName, 'r')
- except:
- return xml.dom.minidom.parseString('<empty/>')
- Start = '<' + Tag
- End = '</' + Tag + '>'
- File = ''
- while File.find(Start) < 0 or File.find(End) < 0:
- Section = f.read(0x1000)
- if Section == '':
- break
- File += Section
- f.close()
- if File.find(Start) < 0 or File.find(End) < 0:
- return xml.dom.minidom.parseString('<empty/>')
- File = File[File.find(Start):File.find(End)+len(End)]
- try:
- return xml.dom.minidom.parseString(File)
- except:
- return xml.dom.minidom.parseString('<empty/>')
-
-def XmlParseStringSection (XmlString, Tag):
- """Parse a section of an XML string into a DOM(Document Object Model) and return the DOM."""
- Start = '<' + Tag
- End = '</' + Tag + '>'
- File = XmlString
- if File.find(Start) < 0 or File.find(End) < 0:
- return xml.dom.minidom.parseString('<empty/>')
- File = File[File.find(Start):File.find(End)+len(End)]
- try:
- return xml.dom.minidom.parseString(File)
- except:
- return xml.dom.minidom.parseString('<empty/>')
-
-def XmlSaveFile (Dom, FileName, Encoding='UTF-8'):
- """Save a DOM(Document Object Model) into an XML file."""
- try:
- f = open(FileName, 'w')
- f.write(Dom.toxml(Encoding).replace('&quot;','"').replace('&gt;','>'))
- f.close()
- return True
- except:
- return False
-
-def XmlRemoveElement(Node):
- """Remove an element node from DOM(Document Object Model) tree."""
- ParentNode = Node.parentNode
- if ParentNode == None:
- return False
- PreviousSibling = Node.previousSibling
- while PreviousSibling != None and PreviousSibling.nodeType == PreviousSibling.TEXT_NODE and PreviousSibling.data.strip() == '':
- Temp = PreviousSibling
- PreviousSibling = PreviousSibling.previousSibling
- ParentNode.removeChild(Temp)
- ParentNode.removeChild(Node)
- return True
-
-def XmlAppendChildElement(ParentNode, TagName, ElementText='', AttributeDictionary = {}):
- """Add a child element to a DOM(Document Object Model) tree with optional Attributes."""
- TagName = TagName.strip()
- if TagName == '':
- return None
- Depth = 0
- Dom = ParentNode
- while Dom != None and Dom.nodeType != Dom.DOCUMENT_NODE:
- Dom = Dom.parentNode
- Depth += 1
- if Dom == None:
- return None
- ParentNode.appendChild(Dom.createTextNode('\n%*s' % (Depth * 2, '')))
- ElementNode = Dom.createElement(TagName)
- if ElementText != '':
- ElementNode.appendChild(Dom.createTextNode(ElementText))
- for Item in AttributeDictionary:
- ElementNode.setAttribute(Item, AttributeDictionary[Item])
- ParentNode.appendChild(ElementNode)
- return ElementNode
-
-
-# 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