0

我正在使用 jquery 和 javascript 处理 xml。我使用 ajax 导入 xml 然后我想对其进行操作, appendChild 是 IE8 中的一个问题。

这是Javascript:

// How i get xml 
$.ajax({
  url: production_get,
  dataType: "xml",
  success: function(data) {
      input_xml=data;
  }
});

// how i try to append a new node to 

new_user_node = document.createElement('user');
new_user_node.setAttribute('id',new_user_id);
new_user_node.setAttribute('label',new_user_label);        

response=$(input_xml)[0].getElementsByTagName("response")[0];
response.appendChild(new_user_node); // <- type mismatch

XML 标记

<response>
    <user id="123" label="John" />
</response>

这适用于所有浏览器,但 IE 报告:类型不匹配。我不得不说它即使在 IE8 中也可以工作,但控制台会报告错误,而在 IE7 中会出现错误弹出窗口

4

1 回答 1

1

当您在 jQuery 中包装 xml 时,它会将 xml 视为 html。这允许遍历获取属性和文本,但不足以修改 xml。

要创建要附加的 XML 文档,您需要使用$.parseXML()

/* First create xml doc*/
var xmlDoc=$.parseXML(input_xml);

/*Create jQuery object of xml doc*/
var $xml= $( xmlDoc);

/*Now append*/
$xml.append( new_user_node);

http://api.jquery.com/jQuery.parseXML/

API 中的更多示例

于 2012-06-23T18:02:51.700 回答