Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止jQuery使用自定义XML更改自动关闭标记_Javascript_Jquery_Html_Xml - Fatal编程技术网

Javascript 防止jQuery使用自定义XML更改自动关闭标记

Javascript 防止jQuery使用自定义XML更改自动关闭标记,javascript,jquery,html,xml,Javascript,Jquery,Html,Xml,我正在创建一个浏览器插件(bookmarklet),它提取嵌入页面元素中的大型XML文档。这是一种自定义XML语言,包含一些自动关闭标记(例如,)。我能够捕获XML文档,将其封装在jQuery对象变量中(例如,$(myXml)),并轻松地操作数据。但是,在我尝试将被操纵的XML文档插入到页面的元素中之后,所有的自动关闭标记都被更改为单独的开始和结束标记。下面是一个正在发生的事情的例子: 之前: <outer-tag> <SELF-CLOSING-TAG foo="bar

我正在创建一个浏览器插件(bookmarklet),它提取嵌入页面
元素中的大型XML文档。这是一种自定义XML语言,包含一些自动关闭标记(例如,
)。我能够捕获XML文档,将其封装在jQuery对象变量中(例如,
$(myXml)
),并轻松地操作数据。但是,在我尝试将被操纵的XML文档插入到页面的
元素中之后,所有的自动关闭标记都被更改为单独的开始和结束标记。下面是一个正在发生的事情的例子:

之前:

<outer-tag>
    <SELF-CLOSING-TAG foo="bar" />
    <second-tag>
        <third-tag>Some Value</third-tag>
    </second-tag>
</outer-tag>

一些价值
在jQUERY操作之后:

<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的想法为我指明了解决这个问题的正确方向。在他的输入之后,我得到了关于这个附加问题的附加建议,并一起解决了问题。

您是否检查了发生这种情况的时间。插入新元素后或读取后。您可以尝试不使用自动关闭元素,如下所示:

<outer-tag>
    <SELF-CLOSING-TAG foo="bar"></<SELF-CLOSING-TAG>
    <second-tag>
        <third-tag>Some Value</third-tag>
    </second-tag>
</outer-tag>


你有没有检查过这种情况发生的时间。插入新元素后或读取后。您可以尝试不使用自动关闭元素,如下所示:

<outer-tag>
    <SELF-CLOSING-TAG foo="bar"></<SELF-CLOSING-TAG>
    <second-tag>
        <third-tag>Some Value</third-tag>
    </second-tag>
</outer-tag>


这“感觉就像”XSD定义的结果,要求您的自动关闭标记环绕“第二个标记”。看一看。我还怀疑,如果您尝试其他浏览器,可能不会发生这种情况。

这“感觉像”XSD定义的结果,该定义要求您的自动关闭标记环绕“第二个标记”。看一看。我还怀疑,如果您尝试其他浏览器,这种情况可能不会发生。

无论我是否自己对XML进行了任何更改,这种情况都会发生。当我通过jQuery提取XML,然后再次使用jQuery将(相同的)XML放回页面时,就会自动发生这种情况。这是我的公司使用的自定义XML语言,我没有办法使用自动关闭标记。谢谢您的想法。Drejc,在进一步考虑之后,您将结束标记放在开始标记之后(对于自动结束标记)的想法可能会起作用,并且是有效的XML。然而,我不知道如何轻松地自动化这项工作。大约有30种不同类型的自动关闭标记,XML文档长达3000多行。有什么想法吗?我不太熟悉jQuery与XML的结合,但在其中一个或另一个方面可能会有一些选项来强制将自动关闭的元素呈现为空元素。我知道C#可以做到这一点。但在我看来,这是jQuery中的一个bug,试着与jQuery团队沟通一下。不管我是否真的对XML做了任何更改,这种情况都会发生。当我通过jQuery提取XML,然后再次使用jQuery将(相同的)XML放回页面时,就会自动发生这种情况。这是我的公司使用的自定义XML语言,我没有办法使用自动关闭标记。谢谢您的想法。Drejc,在进一步考虑之后,您将结束标记放在开始标记之后(对于自动结束标记)的想法可能会起作用,并且是有效的XML。然而,我不知道如何轻松地自动化这项工作。大约有30种不同类型的自动关闭标记,XML文档长达3000多行。有什么想法吗?我不太熟悉jQuery与XML的结合,但在其中一个或另一个方面可能会有一些选项来强制将自动关闭的元素呈现为空元素。我知道C#可以做到这一点。但在我看来,这是jQuery中的一个bug,试着与jQuery团队沟通一下。我在不同的浏览器中尝试过,结果是一样的。我不确定浏览器将引用哪个XSD。有什么方法可以强制jQuery(或浏览器)引用特定的XSD吗?我在不同的浏览器中尝试过,结果是一样的。我不确定浏览器将引用哪个XSD。有没有办法强制jQuery(或浏览器)引用特定的XSD?