我有一个大的XML文档,看起来像这样:蟒蛇XML查询获取父
<Node name="foo">
<Node name="16764764625">
<Val name="type"><s>3</s></Val>
<Val name="owner"><s>1</s></Val>
<Val name="location"><s>4</s></Val>
<Val name="brb"><n/></Val>
<Val name="number"><f>24856</f></Val>
<Val name="number2"><f>97000.0</f></Val>
</Node>
<Node name="1764466544">
<Val name="type"><s>1</s></Val>
<Val name="owner"><s>2</s></Val>
<Val name="location"><s>6</s></Val>
<Val name="brb"><n/></Val>
<Val name="number"><f>265456</f></Val>
<Val name="number2"><f>99000.0</f></Val>
</Node>
...
</Node>
我的任务是获取父节点的值:通过执行1764466544(在第2节点名的值)搜索以查找节点Val name =“number”的子元素是否包含265456
我一直在做一堆关于XPath和ElementTree的阅读,但我仍然不确定从哪里开始实际查询此内容。寻找例子...我找不到任何引用父节点的结果。
仍然是新的python ..任何建议,将不胜感激。
由于
@itwb - 我从来没有在Python中尝试过XPath,所以这部分取决于你,但上面的XPath在抽象中起作用。在这里测试它,例如:http://www.xmlme.com/XpathTool.aspx – 2011-03-21 05:18:47
是的,谢谢你。现在我收到了这个错误:SyntaxError:无法在元素上使用绝对路径。 – itwb 2011-03-21 05:30:24
我在这里不熟悉的领域,但[此链接](http://nltk.googlecode.com/svn/trunk/doc/api/nltk.etree.ElementPath-pysrc.html)显示XPath表达式的以下代码用一个前导'/':'raise SyntaxError(“不能在元素上使用绝对路径”)。也许尝试相对表达?这个节点/节点[Val [@ name ='number']/f ='265456']/@ name'或这个节点/节点[Val [@ name ='number']/f ='265456' ]/@ name' – 2011-03-21 05:40:56