【发布时间】:2011-03-11 03:14:57
【问题描述】:
大家好,这让我发疯了,所以我想问问这个网站上的专家,看看你是否知道怎么做 =)
我正在尝试创建一些可以读取网页元素的 javascript 代码(例如,第一段说什么?)。这是我到目前为止所拥有的,但它不起作用,我不知道为什么:
<script type="text/javascript">
<!--
var req;
// handle onreadystatechange event of req object
function processReqChange() {
// only if req shows "loaded"
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
//document.write(req.responseText);
alert("done loading");
var responseDoc = new DOMParser().parseFromString(req.responseText, "text/xml");
alert(responseDoc.evaluate("//title",responseDoc,null,
XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue);
}
else {
document.write("<error>could not load page</error>");
}
}
}
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET", "http://www.apple.com", true);
req.send(null);
// -->
不断出现的警报是“null”,我不知道为什么。有什么想法吗?
【问题讨论】:
-
简单问题...您是否尝试过控制台记录 responseText 以确保它是有效的 XML?能否提交 XML 以供查看?据我所知,您的 xPath 字符串很好,您对评估的使用也很好...
-
使用它的方式将不会总是有效的 xml。不确定这是否是问题所在,但我怎样才能让它也读取脏 xml? (或者只使用 dom 结构)
-
DomParser 对正确格式化的 XML 非常挑剔。我自己也遇到过问题。对于错过的“>”等,这不是很宽容。
-
哦,您可以尝试在 XML 的开头添加
'<?xml version="1.0" encoding="UTF-8" ?>,以确保解析器将其视为 XML
标签: javascript dom xmlhttprequest domparser