Javascript 将XML导入HTML
我有一个表示一些HTML标记的XML字符串。我想选择一些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标记可以工作 我
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>