带有dom文档的xpath

ert*_*tan 10 javascript xml xpath dom document.evaluate

我正在尝试使用xpath查询查找xml节点.但我不能让它工作.在Firefox中,结果总是"未定义",并且chrome会抛出错误代码.

<script type="text/javascript">

var xmlString = '<form><name>test</name></form>';
var doc = new DOMParser().parseFromString(xmlString,'text/xml');

var result = doc.evaluate('/form/name', doc, 
                          null, XPathResult.ANY_TYPE, null);

alert(result.stringValue);

</script>
Run Code Online (Sandbox Code Playgroud)

这段代码有什么问题?

Top*_*era 10

我不知道为什么你得到这个错误,但你可以改变XPathResult.ANY_TYPE,以XPathResult.STRING_TYPE和将工程(在Firefox 3.6测试).

看到:

var xmlString = '<form><name>test</name></form>';
var doc = new DOMParser().parseFromString(xmlString,'text/xml');
var result = doc.evaluate('/form/name', doc, null, XPathResult.STRING_TYPE, null);
alert(result.stringValue); // returns 'test'
Run Code Online (Sandbox Code Playgroud)

jsfiddle看到.


细节:

方法的第4个参数evaluate是一个整数,您可以在其中指定所需的结果类型(引用).有许多类型,如整数,字符串和任何类型.此方法返回具有许多属性的XPathResult.

您必须将属性(numberValue,stringValue)与evaluate中使用的属性匹配.

我只是不明白为什么any type不合作string value.