我正在创建一个浏览器插件(bookmarklet),用于精确嵌入页面<textarea>
元素中的大型XML文档。这是一种自定义XML语言,包含一些自动关闭标记(例如<custom-tag />
)。我能够捕获XML文档,将其包装在jQuery对象变量(例如$(myXml)
)中,并轻松操作数据。但是,在我尝试将已处理的XML文档插回页面的<textarea>
元素后,所有自动关闭标记都将更改为单独的开始和结束标记。以下是正在发生的事情的一个例子:
在:
<outer-tag>
<SELF-CLOSING-TAG foo="bar" />
<second-tag>
<third-tag>Some Value</third-tag>
</second-tag>
</outer-tag>
jQUERY MANIPULATION:
<outer-tag>
<SELF-CLOSING-TAG foo="bar">
<second-tag>
<third-tag>Some Value</third-tag>
</second-tag>
</SELF-CLOSING-TAG>
</outer-tag>
有什么方法可以阻止jQuery(或只是JavaScript或浏览器?)将这些自动关闭标签转换为打开和关闭标签?后一种方法对我们正在使用的XML模式无效。如果没有办法,还有其他值得考虑的黑客吗?
更新: Drejc的想法指出了我正确的方向来解决这个问题。在他的意见之后,我得到了关于这个额外S.O. post的额外建议,这一起解决了这个问题。
答案 0 :(得分:1)
你有没有检查过这种情况。插入新元素后或读出后。您可以尝试不使用自闭合元素,如下所示:
<outer-tag>
<SELF-CLOSING-TAG foo="bar"></<SELF-CLOSING-TAG>
<second-tag>
<third-tag>Some Value</third-tag>
</second-tag>
</outer-tag>
这可能会有所帮助。
答案 1 :(得分:0)
这种“感觉”是XSD定义的结果,需要您的自动关闭标签环绕“第二标签”。看看吧。我也很怀疑如果您尝试使用其他浏览器,可能不会发生这种情况。