Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多个字符串的单个XPath?_Javascript_Xml_Xpath - Fatal编程技术网

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