用python

时间:2018-11-05 21:47:17

标签: python xml

我有一个XML文件,如下所示:

    <?xml version='1.0' encoding='UTF-8'?><graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.1/graphml.xsd">
<key id="labelV" for="node" attr.name="labelV" attr.type="string"/>
<key id="Count" for="node" attr.name="Count" attr.type="double"/>
<key id="URI" for="node" attr.name="URI" attr.type="string"/>
<key id="labelE" for="edge" attr.name="labelE" attr.type="string"/>
<graph id="G" edgedefault="directed">
  <node id="4096">
    <data key="labelV">v</data>
    <data key="Count">1.0</data>
    <data key="URI">http://www.guavus.com/rflx/ont/c?ln=en&amp;v=1.0&amp;cust=comcast&amp;prj=x1&amp;id=63a9f0ea7bb98050796b649e85481845&amp;norm=n</data>
  </node>
  <node id="4104">
    <data key="labelV">v</data>
    <data key="Count">0.1111111111111111</data>
    <data key="URI">http://www.guavus.com/rflx/ont/l?ln=en&amp;v=1.0&amp;cust=comcast&amp;prj=x1&amp;id=c01ed2b3bffa35c9c2d2c3c723f18bdb&amp;norm=n</data> 
  </node>...

我想向节点元素添加更多数据元素。 我无法到达节点元素。

tree = ET.parse("ner.xml")
root = tree.getroot()
print(root)

我知道

<Element '{http://graphml.graphdrawing.org/xmlns}graphml' at 0x10e015188>

和root.findall('graph')返回空。 这是为什么? 有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

您的XML具有名称空间。您需要声明在解析名称空间时要使用的名称空间(例如ET.register_namespace("gml", "http://graphml.graphdrawing.org/xmlns"); root.find_all("gml:graph"))或在使用元素时使用标准名称(例如root.find_all("{http://graphml.graphdrawing.org/xmlns}graph")