Javascript document.evaluate返回null和iterateNext

Javascript document.evaluate返回null和iterateNext,javascript,xml,xpath,document.evaluate,Javascript,Xml,Xpath,Document.evaluate,我一直在遵循w3学校的例子,使用xpath浏览我的xml文档,但是我从IterateText()得到的结果是空的。下面是我的blog.xml文件 <blog xmlns ="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="blogschema.xsd"> <Title>My blog</Title> <

我一直在遵循w3学校的例子,使用xpath浏览我的xml文档,但是我从IterateText()得到的结果是空的。下面是我的blog.xml文件

<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>

我的博客
星期一
在此处输入文本
体内图片
用逗号分隔标签
20121119
这是我的html脚本,while语句永远不会到达,因为结果总是返回null,这可能是我忽略的,但我认为如果它是在w3学校,它应该真的工作。

xmlDoc=loadXMLDoc(“blog.xml”)//加载xml文件
//loadXmlContent(xmlDoc);使用xmldom
path=“/blog/Title”
if(document.implementation&&document.implementation.createDocument)
{
var节点=xmlDoc.evaluate(路径,xmlDoc,null,5,null);
警报(节点);
var result=nodes.iterateNext();
while(结果)
{document.write(result.childNodes[0].nodeValue);}
}

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

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);
}

我建议您遵循一个than。谢谢,这似乎奏效了,但除了博客和标题之外,似乎没有其他东西,例如标题@Martin Honnen
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);
}