Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 提取第一个表的第一行_Xml_Xpath_Xml Parsing - Fatal编程技术网

Xml 提取第一个表的第一行

Xml 提取第一个表的第一行,xml,xpath,xml-parsing,Xml,Xpath,Xml Parsing,我试图提取解析后的XML文档中第一个table对象的第一个table行tr 我认为下面的方法可以奏效: //table[1]//tr[1]//text() 但它返回的节点太多,例如在“我希望返回”中: Wikimedia Commons has media related to Public transport schedules 但显然不属于第一行的以下节点的文本也会返回: <div style="font-size:110%"><a href="/wiki/Publi

我试图提取解析后的XML文档中第一个table对象的第一个table行tr

我认为下面的方法可以奏效:

//table[1]//tr[1]//text()
但它返回的节点太多,例如在“我希望返回”中:

Wikimedia Commons has media related to 
Public transport schedules
但显然不属于第一行的以下节点的文本也会返回:

<div style="font-size:110%"><a href="/wiki/Public_transport" title="Public transport">Public transport</a></div>

只显示文本,但我会修补完整节点,以便更容易找到它

您需要从TD而不是tr中提取文本

试试这个

//table[1]//tr[1]//td//text()

您需要从TD而不是tr中提取文本

试试这个

//table[1]//tr[1]//td//text()

这是//定义方式的微妙之处-//表[1]并不意味着第一个表,而是指在其各自的父表中作为第一个表元素的每个表。这同样适用于tr步骤-您将获得thead中的第一行和tbody中的第一行

如果要在整个文档中显示第一个表的第一行,则需要使用括号:

(//table//tr)[1]

这表示查找所有表中的所有行,然后从该列表中仅选择文档顺序中的第一个元素。

这是定义//的一种微妙方式-//表[1]不是指第一个表,而是指作为其各自父表中第一个表元素的每个表。这同样适用于tr步骤-您将获得thead中的第一行和tbody中的第一行

如果要在整个文档中显示第一个表的第一行,则需要使用括号:

(//table//tr)[1]

这表示查找所有表中的所有行,然后从该列表中仅选择文档顺序中的第一个元素。

效果很好,因为您猜我是XPath新手,这些括号对我来说是一个新的强大工具。效果很好,你猜我是XPath新手,这些括号对我来说是一个新的强大工具。注意标记的解决方案-我们都爱上了他提到的微妙点。注意标记的解决方案-我们都爱上了他提到的微妙点。我编辑了你的标题。请看,如果共识是否定的,他们就不应该这样。我已经编辑了你的标题。请看,如果共识是否定的,他们就不应该这样做。