Xml 提取第一个表的第一行
我试图提取解析后的XML文档中第一个table对象的第一个table行tr 我认为下面的方法可以奏效: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
//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新手,这些括号对我来说是一个新的强大工具。注意标记的解决方案-我们都爱上了他提到的微妙点。注意标记的解决方案-我们都爱上了他提到的微妙点。我编辑了你的标题。请看,如果共识是否定的,他们就不应该这样。我已经编辑了你的标题。请看,如果共识是否定的,他们就不应该这样做。