Javascript 让jQuery使用另一个库(XML解析)

Javascript 让jQuery使用另一个库(XML解析),javascript,jquery,innerxhtml,Javascript,Jquery,Innerxhtml,我们使用jQuery生成一个XML片段,然后使用html()函数将其转换为字符串。但是我们刚刚发现,如果有人不知道的话,IE中实现的html()JavaScript函数已经坏了,坏了,坏了。基本上,它将一些标记大写,为其他标记添加属性“有帮助”(在我们的例子中是),并且通常不会做正确的事情 我想用这样的方式来生成XML字符串: 但是,此库不能很好地使用现成的jQuery,例如: var $dummyRoot = $('<dummyroot/>'); // since html()

我们使用jQuery生成一个XML片段,然后使用
html()
函数将其转换为字符串。但是我们刚刚发现,如果有人不知道的话,IE中实现的
html()
JavaScript函数已经坏了,坏了,坏了。基本上,它将一些标记大写,为其他标记添加属性“有帮助”(在我们的例子中是),并且通常不会做正确的事情

我想用这样的方式来生成XML字符串:

但是,此库不能很好地使用现成的jQuery,例如:

var $dummyRoot = $('<dummyroot/>'); // since html() doesn't generate the outer element
var $foo = $('<foo></foo>');
var $font = $('<font ></font >');
$foo.append($font);
$dummyRoot.append($foo);
var $s = innerXHTML($dummyRoot); // <-- Doesn't work

jQuery对象包装其内容,但通过数组索引器公开它们。当你使用时,你会得到什么

var $s = innerXHTML($dummyRoot[0]);

与您的示例不同?

jQuery对象包装其内容,但通过数组索引器公开它们。当你使用时,你会得到什么

var $s = innerXHTML($dummyRoot[0]);
而不是你的例子

是否有不在DOM中生成XML的不成文规则,因为DOM中的元素有body、font、head等名称

var $dummyRoot = $('<dummyroot/>');
var $foo = $('<foo></foo>');
var $body = $('<body></body>');
var $font = $('<font></font>');
$body.append($font);
$foo.append($body);
$dummyRoot.append($foo);

var $s = innerXHTML($dummyRoot[0]);

// $s equals "<foo><body bottommargin="15" leftmargin="10" rightmargin="10" topmargin="15"><font size="+0"></font></body></foo>"
jQuery依赖
innerHTML
属性来解析给定的文本片段并从中构造DOM。它从来不是要解析或生成XML,因为名称冲突可能会产生完全不可预测的结果,这取决于浏览器如何看待它

我给出了一个使用递归方法以较少步骤生成正确XML的方法。要创建以下XML,请执行以下操作:

<foo>
    <body>
        <font></font>
    </body>
</foo>
看起来很酷,但是您可以将函数名更改为您想要的任何名称:)

是否有不在DOM中生成XML的不成文规则,因为DOM中的元素有body、font、head等名称

var $dummyRoot = $('<dummyroot/>');
var $foo = $('<foo></foo>');
var $body = $('<body></body>');
var $font = $('<font></font>');
$body.append($font);
$foo.append($body);
$dummyRoot.append($foo);

var $s = innerXHTML($dummyRoot[0]);

// $s equals "<foo><body bottommargin="15" leftmargin="10" rightmargin="10" topmargin="15"><font size="+0"></font></body></foo>"
jQuery依赖
innerHTML
属性来解析给定的文本片段并从中构造DOM。它从来不是要解析或生成XML,因为名称冲突可能会产生完全不可预测的结果,这取决于浏览器如何看待它

我给出了一个使用递归方法以较少步骤生成正确XML的方法。要创建以下XML,请执行以下操作:

<foo>
    <body>
        <font></font>
    </body>
</foo>

看起来很酷,但是您可以将函数名更改为您想要的任何名称:)

我仔细查看了您的酷Sigma运算符,但是我想知道如果必须循环使用现有的数据结构,我将如何使用它生成XML。到目前为止(这里和另一个问题中)您的所有示例都是静态地构建XML。这里只有三个基本元素在起作用-
createElement
createTextNode
appendChild
。前两个需要为其创建节点的文档对象,最后一个需要新节点附加到的父节点。我将尝试更新动态生成XML的示例。我仔细查看了您的酷炫Sigma操作符,但我想知道如果必须循环现有的数据结构,我将如何使用它生成XML。到目前为止(这里和另一个问题中)您的所有示例都是静态地构建XML。这里只有三个基本元素在起作用-
createElement
createTextNode
appendChild
。前两个需要为其创建节点的文档对象,最后一个需要新节点附加到的父节点。我将尝试更新动态生成XML的示例。