gpt4 book ai didi

javascript - Google Chrome 中的 XPath 错误?

转载 作者:行者123 更新时间:2023-11-30 06:00:25 25 4
gpt4 key购买 nike

我需要通过 XPath 访问我用 JavaScript 创建的 XML 文档。如果我从服务器(通过 XMLHttpRequest)加载 XML 文件,它工作正常,但如果我使用本地创建的 XML 文档中的 XML 文档引用,Chrome 不会显示任何内容,而 Firefox 则符合我的预期。

这里有一些示例代码:

<!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.75 m 开发工具没有显示任何错误或提示。

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

提前致谢

最佳答案

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

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

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

xml.appendChild(root);

在此之后:

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

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

关于javascript - Google Chrome 中的 XPath 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8945305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com