Javascript 多个字符串的单个XPath?
我试图从没有类的Javascript 多个字符串的单个XPath?,javascript,xml,xpath,Javascript,Xml,Xpath,我试图从没有类的span中获取值,我设法在一个类中获取值,但我需要一次获取所有值。 这是我的代码: <span>one</span> <span>two</span> <span>three</span> <span>four</span> var headings = document.evaluate("//span[contains(., 'one')]", document, null,
span
中获取值,我设法在一个类中获取值,但我需要一次获取所有值。
这是我的代码:
<span>one</span>
<span>two</span>
<span>three</span>
<span>four</span>
var headings = document.evaluate("//span[contains(., 'one')]", document, null, XPathResult.ANY_TYPE,
null );
var thisHeading = headings.iterateNext();
console.log(thisHeading); // Prints the html element in console
console.log(thisHeading.textContent);
1
2
三
四
var headers=document.evaluate(//span[contains(,'one')]),document,null,XPathResult.ANY_类型,
无效);
var thishheading=headers.iterateNext();
console.log(此标题);//在控制台中打印html元素
console.log(thishheading.textContent);
它如何在
文档中放入多个值。evaluate()
,以便我可以打印所有值?首先,您需要使用或
来测试多个值[包含(,'one')或包含(,'two')或…]
然后,您需要使用迭代器对结果进行循环
var headers=document.evaluate(//span[contains(,'one')或contains(,'two')]),document,null,XPathResult.ANY_类型,
无效);
本品目变异;
while(thishheading=headers.iterateNext()){
log(thisHeading);//在控制台中打印html元素
console.log(thishheading.textContent);
}
1
二
三
四个
注意XPath包含()检查子字符串;对于字符串相等,对节点的字符串值使用=
。看
XPath 1.0
通过谓词中的或运算符测试备选方案:
//span[.='one' or .='two' or .='three' or .='four']
XPath2.0
这可以缩短为:
//span[. = ('one','two','three'.'four')]
Xpath是一种方法,但是如果您想要的只是获取值,而使用Xpath并不重要,那么您可以尝试使用getElementsByTagName获取标记值。你所需要的一切将是;var标题=document.getElementsByTagName(“span”);对于(index=0;index