我不想在以下方面使用jQuery:
如果我有以下XML
<parent>
<a >some text
<b propA="foo">some more text
</b>
and more text still
</a>
</parent>
想要打电话给
// pseudo ...我传入节点1,因为节点0是一个无用的空文本节点......
getFlatXMLAsString(parent.childNodes [1])
并收到一个类似于"<a>some text\n<b propA="foo">some more text\n\n</b>and more text still</a>"
注意它是如何将XML转换为扁平字符串,但包含节点自己的开始和结束标记(如果有属性,那么它也会包含那些)。
显然我可以手动完成,但希望有一些内置机制可以阻止我重新发明轮子。
答案 0 :(得分:3)
根据发布的答案here,跨浏览器的方式看起来像
function outerHTML(node){
// if IE, Chrome take the internal method otherwise build one
return node.outerHTML || (
function(n){
var div = document.createElement('div'), h;
div.appendChild( n.cloneNode(true) );
h = div.innerHTML;
div = null;
return h;
})(node);
}
如果我正确理解了这个问题,那就是。
答案 1 :(得分:1)
在Mozilla和Webkit浏览器中,您可以使用XMLSerializer
。只做一个对象测试。
我不知道其他浏览器可以使用哪些设施,但它们可能有一个。
最糟糕的情况是,您必须编写一个函数来手动执行此操作,该函数遍历所有节点并写入字符串。 This answer应该让你开始。