使用XPATH获取HTML标记的类名
假设我们将这个span标记使用XPATH获取HTML标记的类名,html,xml,xpath,Html,Xml,Xpath,假设我们将这个span标记封装在一个复杂的文档中,如下所示: <div id="box_content"> <div class="heading"> Description </div> Really cool description about something really cool. <br> <div class="more_detail"> </di
封装在一个复杂的文档中,如下所示:
<div id="box_content">
<div class="heading">
Description
</div>
Really cool description about something really cool.
<br>
<div class="more_detail">
</div>
<div class="more_detail">
<span class="date">Today's Date is</span>June 06 2014
</div>
<span class="my-FAV_numberis49"></span>
</div>
描述
关于一些非常酷的东西的非常酷的描述。
今天的日期是2014年6月6日
如何仅保存span
类的名称(即“my-FAV\u numberis49
”),假设文档的格式将保持不变,但span
类名称可以更改为类似“my-FAV\u numberis7
”的内容。有办法做到这一点吗
我希望我的问题是清楚的。谢谢你的帮助 此XPath表达式将选择所有
span
元素,这些元素是div
的子元素,ID为box\u content
,具有包含字符串my-FAV\u numberis
的class属性
//div[@id='box_content']/span[contains(@class, 'my-FAV_numberis')]
它将匹配my-FAV_号码49
,my-FAV_号码7
和任何包含my-FAV_号码的字符串,包括其他类my-FAV_号码99
和此-56-my-FAV_号码不在此处
如果在此上下文中有多个span
匹配,则将选择一个节点集。可以避免添加更多限制或位置谓词
如果span
是该上下文中最后一个span
子元素,则可以使用:
//div[@id='box_content']/span[last()]
//div[@id='box_content']//span[last()]/@class
这是基于您提供的示例。如果span
元素并不总是div
的子元素,并且有时可能位于另一个元素内,则可以使用后代轴:
它将选择在任何级别的div
中出现的最后一个span
编辑:要从span
元素中提取类名,可以使用:
//div[@id='box_content']/span[last()]
//div[@id='box_content']//span[last()]/@class
此XPath表达式将选择所有span
元素,这些元素是div
的子元素,ID为box\u content
,具有包含字符串my-FAV\u numberis
的class属性
//div[@id='box_content']/span[contains(@class, 'my-FAV_numberis')]
它将匹配my-FAV_号码49
,my-FAV_号码7
和任何包含my-FAV_号码的字符串,包括其他类my-FAV_号码99
和此-56-my-FAV_号码不在此处
如果在此上下文中有多个span
匹配,则将选择一个节点集。可以避免添加更多限制或位置谓词
如果span
是该上下文中最后一个span
子元素,则可以使用:
//div[@id='box_content']/span[last()]
//div[@id='box_content']//span[last()]/@class
这是基于您提供的示例。如果span
元素并不总是div
的子元素,并且有时可能位于另一个元素内,则可以使用后代轴:
它将选择在任何级别的div
中出现的最后一个span
编辑:要从span
元素中提取类名,可以使用:
//div[@id='box_content']/span[last()]
//div[@id='box_content']//span[last()]/@class
试一试
它表示查找带有属性class
的span
标记,该属性以my-FAV\u numberis
开头,并输出其class属性内容。试试看
它表示查找一个span
标记,该标记的属性class
以my-FAV\u numberis
开头,并输出其class属性内容。第一个答案是有用的
//div[@id='box_content']/span[contains(@class, 'my-FAV_numberis')]
exact the class name try //span[starts-with(@class, 'my-FAV_numberis')]/@class
第一个答案是有用的
//div[@id='box_content']/span[contains(@class, 'my-FAV_numberis')]
exact the class name try //span[starts-with(@class, 'my-FAV_numberis')]/@class
您需要发现文档的不变方面。您想要的跨度是否始终是该div
中的最后一个跨度?这是唯一的一个吗?这是课后第一个有班级标题的吗?还是字符串中有不变的部分?例如my-FAV_numberis
-它永远不会改变吗?您需要发现文档的不变方面。您想要的跨度是否始终是该div
中的最后一个跨度?这是唯一的一个吗?这是课后第一个有班级标题的吗?还是字符串中有不变的部分?例如my-FAV_numberis
-它永远不会改变吗?这不是我想要的,但是谢谢你的回复。您给出的XPATH表达式非常适合在中提取内容,但实际上我只想获得span类名称。例如,您知道“name(path/to/node)”如何给出您要查找的节点的名称吗?这正是我想要的。这个name()函数不适用于我的情况,因为我想计算类名(my-FAV_numberis49),而不仅仅是节点的名称。很抱歉混淆了。您想要完整的字符串吗?您只需在路径中再添加一个步骤://div[@id='box\u content']///span[last()]/@class
从那里,您可以根据需要提取数字,因为您知道字符串的不变部分:子字符串(//div[@id='box\u content']///span[last()]/@class'my-FAV\u numberis')
将在您的示例中返回49
。这不是我想要的,但感谢您的回复。您给出的XPATH表达式非常适合在中提取内容,但实际上我只想获得span类名称。例如,您知道“name(path/to/node)”如何给出您要查找的节点的名称吗?这正是我想要的。这个name()函数不适用于我的情况,因为我想计算类名(my-FAV_numberis49),而不仅仅是节点的名称。很抱歉混淆了。您想要完整的字符串吗?您只需在路径中再添加一个步骤://div[@id='box\u content']///span[last()]/@class
从那里,您可以根据需要提取数字,因为您知道字符串的不变部分:子字符串(//div[@id='box\u content']///span[last()]/@class'my-FAV\u numberis')
将在您的示例中返回49
。您可以添加解释吗?您可以添加解释吗?欢迎使用。恳求