首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用iterateNext时,document.evaluate返回null

使用iterateNext时,document.evaluate返回null
EN

Stack Overflow用户
提问于 2012-12-31 22:09:29
回答 1查看 1.9K关注 0票数 0

我一直在遵循w3学校的示例,使用xpath在我的xml文档中导航,但是我从iterateNext()得到的结果是空的。下面是我的blog.xml文件。

代码语言:javascript
复制
<blog
xmlns ="http://www.w3schools.com" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="blogschema.xsd">
<Title>My blog</Title>

<Entry>
    <Heading id="101">week1</Heading>   
    <body>
        <text>enter text right here</text>
        <pictures>pictures in the body</pictures>

    </body>
    <labels>Seperate labels with commas</labels>
    <date> 20121119</date>

</Entry>





</blog>

这是我的html脚本,while语句永远不会到达,因为result总是返回null,这可能是我忽略的地方,但我假设如果它是在w3学校,它应该真的可以工作。

代码语言:javascript
复制
xmlDoc=loadXMLDoc("blog.xml");//loads xml file  
//loadXmlContent(xmlDoc); using xml dom

path="/blog/Title"
if(document.implementation && document.implementation.createDocument)
{

    var nodes = xmlDoc.evaluate(path, xmlDoc, null, 5, null);
    alert(nodes);
    var result = nodes.iterateNext();


    while (result)
    {document.write(result.childNodes[0].nodeValue);}

}
</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-31 23:05:04

在输入中有一个默认的名称空间声明xmlns="http://www.w3schools.com",您需要考虑使用例如

代码语言:javascript
复制
var nodes = xmlDoc.evaluate("df:blog/df:Title", xmlDoc, function(prefix) { if (prefix === "df") return "http://www.w3schools.com"; }, 5, null);

var result;

while ((result = nodes.iterateNext()) != null)
{
  document.write(result.textContent);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14102573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档