1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
#!/usr/bin/python
# VIM declarations
# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:
#############################################################################
#
# Copyright (c) 2003 Dell Computer Corporation
# All Rights Reserved.
#
#############################################################################
"""
$Id: HelperXml.py,v 1.1 2004/03/14 06:09:08 michael_e_brown Exp $
"""
__version__ = "$Revision: 1.1 $"
# $Source: /home/cvsroot-hb/cvsroot/libsmbios/build/scripts/HelperXml.py,v $
import types
def getText(nodelist):
rc = ""
if nodelist is not None:
for node in nodelist:
if node.nodeType == node.TEXT_NODE:
rc = rc + node.data
return rc
def getNodeText( node, *args ):
rc = ""
node = getNodeElement(node, *args)
if node is not None:
rc = getText( node.childNodes )
return rc
def getNodeElement( node, *args ):
if len(args) == 0:
return node
#print "DEBUG: args(%s)" % repr(args)
if node is not None:
for search in node.childNodes:
if isinstance(args[0], types.StringTypes):
if search.nodeName == args[0]:
candidate = getNodeElement( search, *args[1:] )
if candidate is not None:
return candidate
else:
if search.nodeName == args[0][0]:
attrHash = args[0][1]
found = 1
for (key, value) in attrHash.items():
if search.getAttribute( key ) != value:
found = 0
if found:
candidate = getNodeElement( search, *args[1:] )
if candidate is not None:
return candidate
return None
|