XPath的。正确的xpath表示法。

时间:2013-06-21 20:04:29

标签: xpath xpath-2.0

我正在建立一个网络浏览器来获取网页的信息。我想要正确的xpath表示法来获取信息。

<div class="inner">
<div class="col">
  <h2><a href="land-in-kadawatha-for-sale-gampaha-442">Land in Kadawatha</a></h2>
  <div class="meta">
      <div class="date"></div>
      <span class="category">Other Lands</span>,
    <span class="location">Gampaha</span>
  </div>
</div>

如何使用xpath访问“Kadawatha的土地”。

3 个答案:

答案 0 :(得分:2)

没有xsl的独立XPath:

//div[contains(concat(" ", @class, " "), " inner ")]/div[contains(concat(" ", @class, " "), " col ")]/h2[1]/a

答案 1 :(得分:0)

使用此功能:

<xsl:function name="markup:has-class" as="xs:boolean">
   <xsl:param name="el" as="element()" />
   <xsl:param name="class-name" as="item()" />

   <xsl:sequence select="$el/@class and tokenize(upper-case(normalize-space($el/@class)), ' ') = upper-case(string($class-name))" />
</xsl:function>

你可以这样做:

*[markup:has-class(., 'inner')]/*[markup:has-class(., 'col')]//h2/string()

根据您的上下文节点进行相应调整。

答案 2 :(得分:0)

基于该片段

//div[@class='col']/h2/a

然后你的代码看起来像

IWebElement element = driver.FindElement(By.XPath("//div[@class='col']/h2/a"));
string elementText = element.Text();