如何访问lxml和Python中未解析的实体?

2024-10-02 14:16:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个格式良好的XML,代码如下:

    <fxp-connector name="streaming" host="&fxvmnsrv.host;" port="&fxvmnsrv.port;" mode="INITIATOR">
        <message type="1" .../>
       ....
    </fxp-connector>
    .....

我正在用以下方法解析它:

import lxml.etree as ET
parser = ET.XMLParser(resolve_entities=False)
tree = ET.parse(inCfgFileName, parser)
....
outFile = open(outCfgFileName, "w")
......
e = tree.findall('fxp-connector[@name="streaming"]')
.....
tree.write(outFile)

在该行变成的输出中:

&fxvmnsrv.host;&fxvmnsrv.port;<fxp-connector name="streaming" host="" port="" mode="INITIATOR">

。。。你知道吗

print e[0]打印<message .../>标记 如何访问这些实体引用?我试过几次,但到目前为止运气不好。你知道吗


Tags: nametreehostparsermessageconnectorportmode
1条回答
网友
1楼 · 发布于 2024-10-02 14:16:31

找到他们了。它们被插入到根中,即与它前面的<fxp-connector>处于同一级别。你知道吗

for i in range(20):
print i, root[i]

产生:

9 &fxvmnsrv.host;
10 &fxvmnsrv.port;
11 <Element fxp-connector at 0xffffffff7b7386c8> #this is the <fxp-connector tag>

相关问题 更多 >

    热门问题