我正在尝试分析xml数据,并在使用
时遇到与HTML实体有关的问题import xml.etree.ElementTree as ET
tree = ET.parse(my_xml_file)
root = tree.getroot()
for regex_rule in root.findall('.//regex_rule'):
print(regex_rule.get('input')) #this ".get()" method turns < into <, but I want to get < as written
print(regex_rule.get('input') == "(?<!\S)hello(?!\S)") #prints out false because ElementTree's get method turns < into < , is that right?
这是xml文件内容:
<rules>
<regex_rule input="(?<!\S)hello(?!\S)" output="world"/>
</rules>
如果有人可以指示我从输入的xml属性获取字符串而不转换
,我将不胜感激<
进入
<
答案 0 :(得分:2)
xml.etree.ElementTree
完全符合标准,即解码XML字符实体,理解它们实际上对引用的字符进行编码,并且应该这样解释。
如果您需要对文字<
进行编码,则首选操作方法是将输入文件更改为使用&lt;
(即我们对&
进行XML编码)。< / p>
如果您无法更改输入文件格式,那么您可能需要使用不同的模块,或编写自己的解析器:xml.etree.ElementTree
在您对输出执行任何有意义的操作之前很好地翻译实体。 / p>