首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌浏览器中的XPath错误?

谷歌浏览器中的XPath错误?
EN

Stack Overflow用户
提问于 2012-01-21 01:19:43
回答 1查看 583关注 0票数 2

我需要通过XPath访问我用JavaScript创建的XML文档。如果我从服务器加载一个XML文件(通过XMLHttpRequest),它工作得很好,但是如果我使用本地创建的XML文档的XML文档引用,Chrome没有显示任何东西,而Firefox做了我所期望的。

下面是一些示例代码:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<script type="text/javascript">
        var xml = document.implementation.createDocument("", "", null);

        var root = xml.createElement("root");

        var level1 = xml.createElement("L1");
        var level2 = xml.createElement("L2");
        L2txt = xml.createTextNode("here is L2");

        level2.appendChild(L2txt);
        level1.appendChild(level2);

        var level2 = xml.createElement("L2");
        level2.setAttribute("id", "myId");
        L2txt = xml.createTextNode("here is L2 with id");

        level2.appendChild(L2txt);
        level1.appendChild(level2);
        root.appendChild(level1);

        path="//L2[@id='myId']";

        var nodes=xml.evaluate(path, root, null, XPathResult.ANY_TYPE, null);
        var result=nodes.iterateNext();

        while (result) {
          document.write(result.textContent);
          document.write("<br />");
          result=nodes.iterateNext();
        }
</script>
</body>
</html>

代码应该输出"here is L2 with id“。

我使用的是FF 9.0.1和Chrome 16.0.912.75m,开发工具没有显示任何错误或提示。

现在我真的不知道了,是Chrome中的bug还是Firefox中的“额外”功能。而且--最重要的是--我怎样才能让Chrome变得像Firefox一样。或者您是否有另一个想法,如何在本地创建的XML文档上使用XPath?!

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-22 00:37:39

我发现您的示例代码中有一个小问题。

root元素永远不会添加到XML文档( xml变量)。

因此,XPath搜索无法工作,因为xml文档对象没有根元素,因此没有要搜索的内容。尝试添加:

代码语言:javascript
复制
xml.appendChild(root);

在此之后:

代码语言:javascript
复制
var root = xml.createElement("root");

这解决了我在Chrome中的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8945305

复制
相关文章

相似问题

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