我要求获得以下文字"电子艺术" (这可以根据数据改变)使用类标题"提供者" (使用Xpath,这个类对所有人来说都是一样的)。我尝试了各种xpath编码,但无法获得我想要的结果。我真的很想找点帮助。
<div class="meta-info">
<div class="title"> Offered By</div>
<div class="content">ELECTRONIC ARTS</div> </div>
答案 0 :(得分:1)
这是一个可能的XPath表达式,然后您可以根据需要简化或添加更多条件(XPath格式化为更易读):
//div[
@class='meta-info'
and
div[@class='title' and normalize-space()='Offered By']
]/div[@class='content']
解释:
//div[@class='meta-info' and ...
:查找div
元素class
属性值等于"meta-info"
和...
div[@class='title' and normalize-space()='Offered By']]
:...包含子元素div
,其中class
属性值等于"title"
且内容等于"Offered By"
/div[@class='content']
:来自此类div
(<div class="meta-info">
要明确),返回子元素div
,其中class
属性值等于{{ 1}}
答案 1 :(得分:0)
使用Mozilla上的示例:
var xpath = document.evaluate("//div[@class='content']", document, null, XPathResult.STRING_TYPE, null);
document.write('The text found is: "' + xpath.stringValue + '".');
console.log(xpath);
&#13;
<div class="meta-info">
<div class="title"> Offered By</div>
<div class="content">ELECTRONIC ARTS</div>
</div>
&#13;
顺便说一句,我认为document.querySelector
或document.querySelectorAll
在这种情况下更方便:
var content = document.querySelector('.meta-info .content').innerText;
document.write('The text found is: "' + content + '".');
console.log(content);
&#13;
<div class="meta-info">
<div class="title"> Offered By</div>
<div class="content">ELECTRONIC ARTS</div>
</div>
&#13;