gpt4 book ai didi

javascript - "Read"XML 与 JavaScript

转载 作者:行者123 更新时间:2023-11-30 23:48:57 26 4
gpt4 key购买 nike

仍在使用 Chrome 扩展程序,当我想从 XML 文件中获取一些信息时遇到了一些问题。 XML 的外观如下:

<?xml version='1.0' encoding='utf8'?>
<objects>
<url>
<domain>...</domain>
<nb_clics>...</nb_clics>
<alias>...</alias>
<title>...</title>
<source>...</source>
<description />
</url>
</objects>

我已经尝试过,但没有结果:

<html>
<head>
<style>
body {
width:160px;
}
p {
font-weight:bold;
margin-bottom:0;
}
</style>
</head>
<script type="text/javascript">
function DOMImplementation(sUrl, fCallback) {
var dom;
if(window.ActiveXObject) {
dom = new ActiveXObject("Microsoft.XMLDOM");
dom.onreadystatechange = function() {
if(dom.readyState == 4) {
fCallback(dom);
}
};
}
else if(document.implementation && document.implementation.createDocument) {
dom = document.implementation.createDocument("", "", null);
dom.onload = function() {
fCallback(dom);
}
}
else {
alert("ERROR");
return;
}
dom.load(sUrl);
}

function shrimit() {
var nicknick = localStorage["nick_name"];
var apiapi = localStorage["api_key"];
var yourc = document.getElementById("your");

chrome.tabs.getSelected(null,function(tab) {
var tablink = tab.url;
if(!nicknick || !apiapi){
yourc.setAttribute("value","Set the options");
} else {
DOMImplementation("post.xml", getData);
function getData(oData) {
var tablink2 = oData.getElementsByTagName("alias")[0].firstChild.data;
yourc.setAttribute("value",tablink2);
}
}
});
}
</script>
<body onload="shrimit()">
<input id="your" name="your" type="text" value="" />
</body>
</html>

你能帮我吗?

最佳答案

使用XMLHttpRequest加载XML文件。这是跨浏览器标准化且可靠的。 document.implementation.createDocument ... load 不是。

(您可能会得到一个 HTMLDocument,而不是纯 XML 文档。通常在回退到 document.implementation.createDocument 之前先嗅探 DOMParser。另外 createDocument( '', '', null); 无效:不能有空字符串根元素名称。请使用 createDocument(null, 'name', null)。此外,最后,最好不要使用名称 DOMImplementation 因为这是 Chrome 和其他一些内置接口(interface)/类的名称。)

最后,在 else 子句中使用 function 语句在 JavaScript 中是无效的。浏览器倾向于允许它,但结果各不相同。要么在顶层声明函数,要么使用内联函数表达式。

关于javascript - "Read"XML 与 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1982774/

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