System.Xml.XmlDocument.OuterXml()将生成(例如)
<list id="myBooks">
<book id="123" name="XML for muppets" />
<book id="456" name="HTML for fools" />
</list>如果您想将这个xml嵌入到HTML页面中,那么它将在IE中很好地工作(因为xml数据岛是html标准的扩展)。
但是,对于Firefox,您需要使用以下内容加载这个在DOMParser中包含xml的未知html标记
var list = document.getElementById("myBooks");
var doc = new DOMParser().parseFromString(list.outerHTML);但是,因为HTML中的会将list.outerHTML视为
<list>
<book id="123" name="XML for muppets">
<book id="456" name="HTML for fools">
</book>
</book>
</list>那么,如何让XmlDocument.OuterXml()输出xml完全结束标记而不是速记呢?
编辑添加的示例来说明
<html><body>
<xml id="myBooks">
<list>
<book id="123" name="XML for muppets" />
<book id="456" name="HTML for fools" />
</list>
</xml>
<script>
var oXml = document.getElementById("myBooks");
alert(oXml.innerHTML);
</script>
</body></html>发布于 2009-11-30 14:59:29
这有点杂乱无章,但在任何空节点中都添加了一个空格,这样就会发生变化。
<book id="123" name="XML for muppets" />转到
<book id="123" name="XML for muppets"> </book>期待着出现在DailyWTF上!
addSpaceToEmptyNodes(xmlDoc.FirstChild);
private void addSpaceToEmptyNodes(XmlNode node)
{
if (node.HasChildNodes)
{
foreach (XmlNode child in node.ChildNodes)
addSpaceToEmptyNodes(child);
}
else
node.InnerText = " ";
}https://stackoverflow.com/questions/1817060
复制相似问题