大家好!
我需要操作通过XMLHttpRequest对象接收的HTML源代码(而不是XML)中的元素.
如果可能,我希望将HTML转换为DOM Document对象并在其中运行XPath查询,如下所示:
- var otherDocument = createDocumentFromHTMLSource (htmlSource);
- var result = otherDocument.evaluate("//A", otherDocument.body, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
-
如果这样解决不了,我有没有其他办法可以考虑呢?
目标浏览器是Firefox 2.0.
谢谢!
# 回答1
不知道这是否有帮助,但您熟悉XUL吗?如果没有的话,我有链接.这是火狐最棒的地方之一.
# 回答2
我听说过XUL,但从来没有用过.
但是,我可以通过使用不可见的临时IFRAME元素来加载HTML来安排解决方案,而不是使用XMLHttpRequest.我的代码变成了如下所示:
- var iframe = document.createElement('iframe');
- iframe.style.display = 'none';
- document.body.appendChild(iframe);
- iframe.addEventListener('load', f, true);
- iframe.src = ...;
-
- function f() {
- var otherDocument = iframe.document;
- var result = otherDocument.evaluate("//A", otherDocument.body, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
- ...
- document.body.removeChild(iframe);
- }
-
我不认为这是一个好的、干净的解决方案--但它对我很有效:-).
还有其他建议吗?
谢谢!
# 回答3
我不是一个喜欢使用脚本的人,但是,供你仔细阅读:
XUL星球
XUL
我建议这样做的原因是,您的目标是Firefox,而您部分使用了XML和Java脚本,因此XUL可能正好适合您正在做的事情.我看到一些使用它的在线应用程序太酷了.