我有一个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&v=1.0&cust=comcast&prj=x1&id=63a9f0ea7bb98050796b649e85481845&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&v=1.0&cust=comcast&prj=x1&id=c01ed2b3bffa35c9c2d2c3c723f18bdb&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')返回空。 这是为什么? 有人可以帮我吗?
答案 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")
)