xmlclass/xmlclass.py
changeset 698 314af37f7db2
parent 684 f10449b18dbe
equal deleted inserted replaced
697:25296cfc3663 698:314af37f7db2
   124     @return: data extracted as string
   124     @return: data extracted as string
   125     """
   125     """
   126     if not extract:
   126     if not extract:
   127         return attr
   127         return attr
   128     if len(attr.childNodes) == 1:
   128     if len(attr.childNodes) == 1:
   129         return unescape(attr.childNodes[0].data.encode("utf-8"))
   129         return unicode(unescape(attr.childNodes[0].data))
   130     else:
   130     else:
   131         # content is a CDATA
   131         # content is a CDATA
   132         text = ""
   132         text = u''
   133         for node in attr.childNodes:
   133         for node in attr.childNodes:
   134             if not (node.nodeName == "#text" and node.data.strip() == ""):
   134             if not (node.nodeName == "#text" and node.data.strip() == u''):
   135                 text += unescape(node.data.encode("utf-8"))
   135                 text += unicode(unescape(node.data))
   136         return text
   136         return text
   137 
   137 
   138 
   138 
   139 def GetNormalizedString(attr, extract=True):
   139 def GetNormalizedString(attr, extract=True):
   140     """
   140     """
   533     return GetModelNameList
   533     return GetModelNameList
   534 
   534 
   535 def GenerateAnyInfos(infos):
   535 def GenerateAnyInfos(infos):
   536     def ExtractAny(tree):
   536     def ExtractAny(tree):
   537         if tree.nodeName in ["#text", "#cdata-section"]:
   537         if tree.nodeName in ["#text", "#cdata-section"]:
   538             return unescape(tree.data.encode("utf-8"))
   538             return unicode(unescape(tree.data))
   539         else:
   539         else:
   540             return tree
   540             return tree
   541     
   541     
   542     def GenerateAny(value, name=None, indent=0):
   542     def GenerateAny(value, name=None, indent=0):
   543         if isinstance(value, (StringType, UnicodeType)):
   543         if isinstance(value, (StringType, UnicodeType)):