innerHTML与XML Elements一起使用?

Jos*_*son 2 javascript xml dom innerhtml

根据JavaScript:The Definitive Guide:"尽管名称如此,但innerHTML可以与XML元素以及HTML元素一起使用".

但是,当我实际尝试访问XML Element对象的innerHTML属性时,undefined返回:

var xml = $.ajax({url: "test.xml", async: false}).responseXML.documentElement;
console.log(xml.innerHTML); // displays "undefined" in console log
Run Code Online (Sandbox Code Playgroud)

这种行为有什么解释?

的test.xml:

<?xml version="1.0" encoding="utf-8"?>
<foo><bar>baz</bar></foo>
Run Code Online (Sandbox Code Playgroud)

Tim*_*own 6

解释是这本书在这一点上是错误的.

IE中的XML元素具有非标准xml属性,提供相当于的innerHTML.对于其他浏览器,您需要使用XMLSerializer.


Lou*_*uis 5

之前的答案没有解决截至2014年9月的新浏览器.使用以下命令创建XML文档时:

var parser = new DOMParser(); 
var doc = parser.parseFromString(data, "text/xml");
Run Code Online (Sandbox Code Playgroud)

dataXML文档在哪里作为字符串,以下是真实的:

  • 在Firefox 28和Chrome 36中,节点中doc包含一个innerHTML字段,其中包含节点内容的XML序列化.

  • 在IE 9,10和11,Safari 7.0和Opera 12中,节点中doc既没有innerHTML字段也没有xml字段.我无法找到可以代表这些领域的东西.除了XMLSerializer用于这些浏览器之外,似乎没有任何其他选项.