2017-06-19 31 views
1

我有代碼良好的XML是這樣的:如何訪問lxml和Python中的未解析實體?

<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 .../>標籤 如何訪問這些實體引用?我嘗試了一些東西,但目前還沒有運氣。

+0

那你試試,什麼是不過outFile,請出示一些代碼 –

+0

德米特里,我更新了問題的代碼的樣本 –

回答

0

找到它們。它們被插入到根中,即與其前面的<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>