如何将XML DOM元素转换为HTML DOM元素?

时间:2011-02-24 04:57:52

标签: javascript html xml

我正在尝试使用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);  
} 

1 个答案:

答案 0 :(得分:0)

显然,之前已经完成,请参阅this question。那张海报的代码似乎有用,但他想要更优雅和简洁的东西。至少他似乎比你领先一步。

但唯一的建议是将整个事物序列化为文本,然后在当前树中解析 - 无论如何,这可能不一定适用于您的情况,因为XML可能并不总是正确解析为HTML ...