我正在尝试使用XMLHTTPRequest下载.xml文件,并将其中的一些元素作为内容添加到页面中。我所做的是发出请求,获取文档,从我想要导入的xml中获取特定的DOM元素,使用existing.appendChild(fromXML)
将元素从xml DOM附加到HTML DOM中的元素。
但是,没有渲染任何实际标记。每个标签内的文本都可以正常呈现。但标签本身似乎被忽略了。 Firebug在HTML面板中以浅蓝色字体显示添加的标签,而不是其他标签的正常蓝色,但我无法弄清楚这意味着什么。 webkit开发人员工具还向我显示标签在那里(虽然没有特殊的颜色),但它们没有正确呈现(例如,img和标签根本没有任何效果)。
我是否遗漏了从XML DOM到HTML DOM的转换?
以下是我的代码的简单版本,其中包含简短注释:
// Make xmlHTTPRequest
...
// Get items from the response xml
var items = xhr.responseXML.getElementsByTagName("item");
// Get one item and it's children recursively
var elm = document.importNode(items[0],true);
// Get the existing element to add the item add to
existingDomElement = document.getElementById("demo");
for (var i = 0; i < $(elm).children().length; i++) {
var child = $($(safeChild).children()[i])[0];
existingDomElement.appendChild(child);
}
答案 0 :(得分:0)
显然,之前已经完成,请参阅this question。那张海报的代码似乎有用,但他想要更优雅和简洁的东西。至少他似乎比你领先一步。
但唯一的建议是将整个事物序列化为文本,然后在当前树中解析 - 无论如何,这可能不一定适用于您的情况,因为XML可能并不总是正确解析为HTML ...