我有一个类似的XML代码:
<?xml version='1.0' encoding="UTF-8"?>
<coureurs>
<coureur>
<nom>Patrick</nom><hair>Inexistants</hair>
</coureur>
</coureurs>
我想打印出来:
Patrick inexistents
Etc...
For now my code is :
from lxml import etree
tree = etree.parse(file.xml)
for coureur in tree.xpath("/coureurs/coureur/nom"):
print(user.text)
但是当我这样做时它会返回空白: 对于tree.xpath中的用户(&#34; / coureurs / coureur / hair&#34;): 它只返回头发。我该怎么办?
答案 0 :(得分:1)
我仍然无法使用您提供的xml和代码重现该问题。但是好像你遗漏了很多xml,如果<table width="263" border="1">
<tr>
<td><?php echo $row_Recordset1['name']; ?></td>
<td><form id="form1" name="form1" method="post" action="">
<!-- NEW LINE BELOW -->
<input type="hidden" name="id" value="<?php echo $row_Recordset1['id']; ?>" />
<input type="submit" name="borrar" id="borrar" value="Borrar" />
</form></td>
</tr>
</table>
不是xml(或它的直接子节点)的直接根,那么XPATH
很可能不适合你。
在这种情况下,您可以使用以下XPATH来获取xml中的每个coureurs
节点(即coureur
节点的子节点) -
coureurs
这将为您提供xml中的所有//coureurs/coureur
标记元素,然后您可以迭代它以打印它的子文本。示例代码 -
<coureur>
示例/演示 -
for user in tree.xpath('//coureurs/coureur'):
for child in user:
print(child.text,end=" ")
print()