Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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/2/jquery/78.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 将XML导入HTML_Javascript_Jquery_Html_Xml - Fatal编程技术网

Javascript 将XML导入HTML

Javascript 将XML导入HTML,javascript,jquery,html,xml,Javascript,Jquery,Html,Xml,我有一个表示一些HTML标记的XML字符串。我想选择一些XML并将其导入HTML 我目前正在做的一个例子: som文本 你好 点击 xml=''; $xml=$($.parseXML(xml)); $('button')。在('click',function()上{ var content=$xml.find('html:first').contents(); 内容。附录至(“正文”); }); 代码应该在页面末尾附加一个链接,但我只能看到文本,而不能看到链接。没有HTML标记可以工作 我

我有一个表示一些HTML标记的XML字符串。我想选择一些XML并将其导入HTML

我目前正在做的一个例子:


som文本

你好 点击 xml=''; $xml=$($.parseXML(xml)); $('button')。在('click',function()上{ var content=$xml.find('html:first').contents(); 内容。附录至(“正文”); });
代码应该在页面末尾附加一个链接,但我只能看到文本,而不能看到链接。没有HTML标记可以工作

我使用了另一个库来做这件事,而不是像jQuery那样,但是结果是一样的。
更新:这是jsfiddle链接:

我终于找到了我自己问题的答案。问题是不要浪费时间使用innerHTML或XMLSerializer。因为它们不适用于所有浏览器,而且它们只与firefox兼容。像$.contents()或$.HTML()这样的jquery解决方案也只适用于firefox,而不适用于opera、chrome和IE

我发现一个名为“htmlize”的jquery插件,它是真正的序列化程序。插件地址为:

您可以从github中找到其他信息。我的问题就是这样解决的:

<html>
<head>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

 </head>
 <body>
  <div><p>som text</p></div>
  <h1>hi there</h1>
  <button>click</button>
  <script>

    xml = '<?xml version="1.0" encoding="utf-8"?><root><html><a href="#">the new link</a></html></root>';
    $xml =$($.parseXML( xml ));

 $('button').on('click',function(){
    var content = $xml.find('html:first').htmlize();
     $(content).appendTo('body');
 });
 </script>
</body>
</html>

som文本

你好 点击 xml=''; $xml=$($.parseXML(xml)); $('button')。在('click',function()上{ var content=$xml.find('html:first').htmlize(); $(content.appendTo('body'); });
.html()不适用于xml文档。因为它在内部使用innerHTML函数。那么
.text()
呢?不。完全不起作用这里附加的是一个
元素
对象(您可以使用浏览器的开发工具看到),而不是
HTMLElement
对象,因此它不会被解释为HTML元素。您应该提供JSFIDLE,这样我们就可以测试自己并解决您的问题
<html>
<head>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

 </head>
 <body>
  <div><p>som text</p></div>
  <h1>hi there</h1>
  <button>click</button>
  <script>

    xml = '<?xml version="1.0" encoding="utf-8"?><root><html><a href="#">the new link</a></html></root>';
    $xml =$($.parseXML( xml ));

 $('button').on('click',function(){
    var content = $xml.find('html:first').htmlize();
     $(content).appendTo('body');
 });
 </script>
</body>
</html>