diff options
author | lhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524> | 2008-12-31 16:26:40 +0000 |
---|---|---|
committer | lhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524> | 2008-12-31 16:26:40 +0000 |
commit | 808def96aa4589fba9c2d0ea55837754a3b7a4f7 (patch) | |
tree | 0ea221c59abb2474c694e7ab5bd61006be77e47e /Tools/Python/XmlRoutines.py | |
parent | 9216450d1143056a50a5f916984a2d7faf590488 (diff) | |
download | edk2-platforms-808def96aa4589fba9c2d0ea55837754a3b7a4f7.tar.xz |
Retiring the ANT/JAVA build and removing the older EDK II packages that required ANT/JAVA.
Last Ant/Java build was r7166
Developers requiring the Java/Ant packages should checkout the branch from:
https://edk2.tianocore.org/svn/edk2/branches/AntJava
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7168 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'Tools/Python/XmlRoutines.py')
-rwxr-xr-x | Tools/Python/XmlRoutines.py | 195 |
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('"','"').replace('>','>')) - 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 |