]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Python/XmlRoutines.py
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / Tools / Python / XmlRoutines.py
diff --git a/Tools/Python/XmlRoutines.py b/Tools/Python/XmlRoutines.py
deleted file mode 100755 (executable)
index 05abb27..0000000
+++ /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