# $SnapHashLicense:
#
# SnapLogic - Open source data services
#
# Copyright (C) 2008, SnapLogic, Inc. All rights reserved.
#
# See http://www.snaplogic.org for more information about
# the SnapLogic project.
#
# This program is free software, distributed under the terms of
# the GNU General Public License Version 2. See the LEGAL file
# at the top of the source tree.
#
# "SnapLogic" is a trademark of SnapLogic, Inc.
#
#
# $
# $Id: XmlUtil.py 831 2008-01-09 23:22:39Z dhiraj $
"""
XmlUtil Module for common utilities with XML parsing and formatting.
"""
__docformat__ = "epytext en"
# Imports
import xml.dom.minidom
def getText(elem):
"""
Gets the text value enclosed by the element.
@param elem: The element with the interested text.
@type elem: xml.dom.Node
@return: Return the text of this element.
"""
txt = ""
for node in elem.childNodes:
if node.nodeType == node.TEXT_NODE:
txt += node.data
return txt.strip()
def setText(doc, elem, txt, type = ''):
"""
Sets text value enclosed in the element.
@param elem: The element for the text.
@type elem: xml.dom.Node
@param txt: The text for this element.
@type txt: string
@param type: The type of the text. For example, 'plain/text', 'xml', etc.
@type type: string
"""
node = doc.createTextNode(txt)
elem.appendChild(node)
if type: elem.setAttribute('type', type)
def setCData(doc, elem, txt, type = ''):
"""
Sets cdata section enclosed in the element.
@param elem: The element for the text.
@type elem: xml.dom.Node
@param txt: The text for this element.
@type txt: string
@param type: The type of the text. For example, 'plain/text', 'xml', etc.
@type type: string
"""
node = xml.dom.minidom.CDATASection()
node.data = txt
elem.appendChild(node)
if type: elem.setAttribute('type', type)
|