是否可以使用jquery $ .ajax添加,删除xml节点?

我想删除一些节点或在xml中使用jquery添加一些节点,我尝试使用appendemptyremove但是所有这些节点似乎都不起作用,如( $ .ajax ):

 success:function(xml){ $(xml).find("layout").append(''); $(xml).find("layout").empty(); } 

我也发现谷歌没有教程。 所以我想知道是否可以使用jquery在xml中添加或删除节点?

好的,我详细写了 ,xml文件只保存在本地域中,因为这里的Database / UserConfig / config.xml是我的Ajax代码

 function layout_change() { var $children=$input.children(); $.ajax({ type: "get", url: "Database/UserConfig/config.xml", dataType: "xml", timeout: 2000, beforesend:function(xml){ $(xml).find("layout").empty(); }, success:function(xml){ for(var i=0;i<$children.length;i++) { $(xml).find("layout").append(''); } }, error:function(){} }); } 

或者它可以用javascript完成?或者只能用C#这样的服务器语言来完成?……

这是我的demo xml:

         

jQuery是一个用于在javascript中解析和操作XML的绝佳工具。 事实上,jQuery的ajax API是基于这个构建的,这就是为什么你能够通过将dataType参数设置为xml来指定ajax调用的响应类型的原因(尽管如果这个参数确实会尝试进行一些自动检测)被省略)。 从dataType参数的jQuery $.ajax()文档:

“xml”:返回可以通过jQuery处理的XML文档。

您可以使用jQuery尽可能多地解析和操作XML。 我必须补充说,与服务器端XML库中的XPath查询相比,使用CSS选择器是很好的。

虽然是empty并且按预期remove工作,但是在使用append :jQuery等函数添加节点时会出现问题,无论出于何种原因(我还没有真正挖掘过这个),在添加到元素时不会为你创建元素XML结构(虽然这在HTML结构中工作正常)。 您可以通过自己显式创建节点作为DOM元素或jQuery对象然后调用append轻松解决这个问题:

 //Either of these will work var elem = document.createElement('app'); xml.find('layout').append(elem); // Appends  to  xml.find('layout').append($('')); // Does the same // You can also you use other manipulation functions such as `attr` xml.find('layout').append($('').attr('id', 'ego')); 

但是,您的代码看起来还有其他问题会阻止它按预期运行。 例如, $.ajax beforeSend回调将XMLHttpRequest对象传递给回调函数,而不是要操纵的XML对象。 结果是你在该回调中的空调不执行任何操作。

此外,如果您试图在beforeSend回调中操纵Database/UserConfig/config.xml的响应,那么它可能不会存在,因为在关闭ajax请求之前调用beforeSend 。 你打算传入的xml参数可能是全局范围的,但它在回调范围内被压扁,因为jQuery正如我前面提到的那样传入XMLHttpRequest