2
<div id="mDetails">
<span class="textLabel">Bar Number:</span>
    <p class="profileText">YYYYYYYYYYYYYYYYYYYY</p>
<span class="textLabel">Address:</span>
    <p class="profileText">YYYYYYYYYYYYYYYYYYY<br>YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY<br>United States</p>
<span class="textLabel">Phone:</span>
    <p class="profileText">123465798</p>
<span class="textLabel">Fax:</span>
    <p class="profileText">987654321</p>
<span class="textLabel">Email:</span>
    <p class="profileText">regina@rbr3.com</p>
<span class="textLabel">County:</span>
    <p class="profileText">YYYYYYYYYYYYYYY</p>
<span class="textLabel">Circuit:</span>
    <p class="profileText">YYYYYYYYYY</p>
<span class="textLabel">Admitted:</span>
    <p class="profileText">00/00/0000</p>
<span class="textLabel">History:</span>
    <p class="profileText">YYYYYYYYYYYYYYYYY</p>

我试图选择电子邮件,只有当我使用//*[@class="profileText"]它时它的可用原因返回该类的所有内容,我只想@在值中存在时返回。

4

1 回答 1

3

随着对输入 XML 的调整以将两者都更改<br><br/>(否则它不是有效的 XML),以下 XPath 将选择所有具有类和包含p的元素:profileText@

//p[@class='profileText'][contains(.,'@')]

返回

<p class="profileText">regina@rbr3.com</p>

如果您只想获取值,可以使用string()

string(//p[@class='profileText'][contains(.,'@')])

返回

regina@rbr3.com

请注意,它string()只会返回第一个匹配项的值,而返回p元素的第一个 XPath 会返回所有匹配项。

于 2015-01-19T20:17:00.110 回答