我需要从网站上删除信息,包含属性详细信息。
<div class="inner">
<div class="col">
<h2><a href="house-in-digana-for-sale-kandy-32">House in Digana </a></h2>
<div class="meta">
<div class="date"></div>
<span class="category">Houses</span>,
<span class="location">Kandy</span>
</div>
</div>
<div class="attr polar">
<span class="data">Rs. 3,600,000</span>
</div>
“Kandy”和“Rs.3,600,000”的xpath表示法是什么?
答案 0 :(得分:3)
由于XML文档中的细微差别,使用text()
直接处理文本节点是不明智的。
相反,寻址元素节点直接将所有后代文本节点的串联作为元素值返回,这是人们通常想要的(并且认为他们在处理文本节点时会得到这些值)。
我在课堂上使用的规范示例是OCR内容为XML的示例:
<cost>39<!--that 9 may be an 8-->.22</cost>
使用XPath地址cost
的元素的值是&#34; 39.22&#34;,但在XSLT 1.0中,XPath地址cost/text()
的值是&#34; 39&# 34;哪个不完整。在XSLT 2.0(标记问题的方式)中,您将获得两个文本节点&#34; 39&#34;和&#34; .22&#34;,如果你连接它们,它看起来是正确的。但是,如果将它们传递给需要单例参数的函数,则会出现运行时错误。当您对元素进行寻址时,返回的文本将连接成一个字符串,该字符串适用于单个参数。
我告诉学生,在我的所有专业工作中,只有非常(非常!)几次我必须在样式表中使用text()
。
所以//span[@class='location' or @class='data']
会找到两个字段,如果它们是整个文档中唯一的这样的元素。您可能需要使用&#34; .// span&#34;从文档树内的位置。