我正在尝试解析xml格式的字符串,删除其中一个元素,然后将其写回字符串。全部都带有标准的jQuery函数。这是我似乎无法弄清楚的最后一步。
var $xml = $(somexmlstring);
var element = $xml.find('name:contains("'+somevalue+'")');
element.remove();
var newxmlstring = $xml.dunno();
我可以使用什么函数将$ xml DOM转换回字符串?
答案 0 :(得分:5)
帮助您修复jsfiddle中的代码:
var data = '<value><url>foo</url><name>bar</name></value><value><url>foo</url><name>bar</name></value>'
var xml = $.parseXML('<root>' + data + '</root>');
var $xml = $(xml);
console.log('xml', $xml.find('root').html());
修复在最后一行:`$ xml。查找(&#39; root&#39;) .html()
答案 1 :(得分:3)
如果首先用父元素包装jQuery对象,然后在父元素上调用.html()
,则可以使用.html()
。
var $xml = $(somexmlstring);
$xml.find('name:contains("' + somevalue + '")').remove();
var newxmlstring = $('<x></x>').append($xml).html();
即使原始XML字符串没有单个根元素,这也有效。但是,如果原始XML字符串包含XML声明(如<?xml version="1.0" encoding="UTF-8"?>
)。
如果原始XML字符串是有效的XML文档,可选地在开头包含XML声明,您可能希望创建如下的jQuery对象:
var $xml = $($.parseXML(somexmlstring).documentElement);
$xml.find('name:contains("' + somevalue + '")').remove();
var newxmlstring = $('<x></x>').append($xml).html();
答案 2 :(得分:0)
只要您的XML文档不包含一些额外的花哨名称空间,那么它很简单:
var newxmlstring = $xml.html();
答案 3 :(得分:0)
你不需要jquery,使用XMLSerializer
new XMLSerializer().serializeToString(xmlobj.documentElement);