2024-05-14 01:27:13 发布
网友
我试图从输入xml文件中提取一些信息,并使用lxml和xpath指令将其打印到输出文件中。 我在读取如下xml标记时遇到了一个问题
... <editor> Barnes & Nobel </editor> ...
为了解析xml文件并打印我使用的编辑器内容(xml中始终只有一个编辑器):
我的问题是&在某个时候被转换成{},这会扰乱我的进一步处理。在
&
如何确保&符号不会被“解码”?在
我终于在How do I escape ampersands in XML so they are rendered as entities in HTML?的答案中找到了自己问题的答案 在我的代码中,我添加了一个中间步骤,以确保所有&;字符在输出时保持不变。这是
parser = etree.XMLParser(encoding='utf-8') xmlText = open(inputXML, "r").read().replace("&", "&amp;") docTree = etree.parse( io.BytesIO(xmlText), parser ) print docTree.xpath('//editor')[0].text
事实上,为了以防万一,我已经将同样的方法应用到http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined%5Fentities%5Fin%5FXML中定义的XML中的其他可能的实体
我知道这听起来有点自以为是,但您希望数据是"&"。这是XML元素的文本内容。如果您以后的处理需要它作为"&",那么您需要一个步骤,将它XML-(或HTML-)编码回"&"
"&"
"&"
不能要求XML解析器解析文档而不将"&"转换为{}。它做不到。在
我终于在How do I escape ampersands in XML so they are rendered as entities in HTML?的答案中找到了自己问题的答案 在我的代码中,我添加了一个中间步骤,以确保所有&;字符在输出时保持不变。这是
事实上,为了以防万一,我已经将同样的方法应用到http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined%5Fentities%5Fin%5FXML中定义的XML中的其他可能的实体
我知道这听起来有点自以为是,但您希望数据是
"&"
。这是XML元素的文本内容。如果您以后的处理需要它作为"&"
,那么您需要一个步骤,将它XML-(或HTML-)编码回"&"
不能要求XML解析器解析文档而不将}。它做不到。在
"&"
转换为{相关问题 更多 >
编程相关推荐