【问题标题】:Getting the full XML output after parseing and inserting a node解析和插入节点后获取完整的 XML 输出
【发布时间】:2014-11-27 02:24:16
【问题描述】:
var fileUrl = '/files/file.xml';

$.ajax({
    type: "GET",
    url: fileUrl,
    dataType: "xml",
    success: parseResultsXML
});

function parseResultsXML(xml) {
  var dom = $(xml);
  var item = $.parseXML("<SubNode><somevalue>new value</somevalue></SubNode>");
  $(dom).children(0).prepend($(item).children(0));

  //Error
  console.log(dom.html());

  //See Output below
  console.log(dom.children().html());
}

//Original Xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RootNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SubNode>
    <somevalue>value</somevalue>
  </SubNode>
</RootNode>

//Output
  <SubNode>
    <somevalue>new value</somevalue>
  </SubNode>
  <SubNode>
    <somevalue>value</somevalue>
  </SubNode>

//Expected Output
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RootNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SubNode>
    <somevalue>new value</somevalue>
  </SubNode>
  <SubNode>
    <somevalue>value</somevalue>
  </SubNode>
</RootNode>

代码相当不言自明。

我正在检索一个 XML 文件,附加一个新节点,我想将输出发回,但我不知道如何取回完整的输出。

我错过了什么,看似很简单的事情?

【问题讨论】:

    标签: javascript jquery ajax xml parsing


    【解决方案1】:

    你可以这样做

    $.ajax({
        type: 'GET',
        contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
        url: fileUrl,
        dataType: "xml",
        parseResultsXML: function(xml) {
            if (xml.readyState == 4 && xml.status == 200) {
                var somevalue = $(xml.SubNode).find('somevalue').text();
            }
        }
    });
    

    【讨论】:

    • 如果您查看 parseResultsXML,我在您试图吐出的内容中添加了这一行。我不是在寻找那个节点,我只是想用新节点把整个事情吐出来。
    猜你喜欢
    • 1970-01-01
    • 2011-12-06
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多