【问题标题】:how to read xml parse in jquery and display in html element如何在 jquery 中读取 xml 解析并在 html 元素中显示
【发布时间】:2017-02-16 10:02:47
【问题描述】:

我正在尝试在 html 中显示已解析的 xml 数据。我已经成功地从 Web 服务调用数据并将 dataType 设置为 xml。但是下面的代码没有错误,它没有将解析的 xml 数据显示为 html。我做错了什么?

XML 数据:

<?xml version='1.0' ?>
<string>
    <DriverInfo xmlns=\"http://tempuri.org/DriverInfo.xsd\">
        <Driver>
            <ID>-1</ID>
                <driver_code>DRIVER01</driver_code>
                <driver_name>DRIVER01 Name</driver_name>
            <transtamp>2017-02-16T14:41:09.9655914+08:00</transtamp>
        </Driver>
    </DriverInfo>
</string>

成功检索解析出的XML数据的整个代码:

$.ajax({
    url: domainName + "GetDriverXml", 
    method: "GET",
    data: {wsCodeCrypt:"MULARIDEWS", caUid: "mularide", caPwd:"VAt_-tg4%Z5pcpct", 
    driverCode:"DRIVER01"},
    cache: false,
    dataType: "xml",
    success: function(data) {
        var xmlDoc = $.parseXML($(data).text());
            var $xml = $(xmlDoc);

            var $driver = $xml.find("Driver");

            $driver.each(function(){

            var driverCode = $(this).find('driver_code').text(),
                driverName = $(this).find('driver_name').text();

            $("#driverDet" ).append('<li>' +driverCode+ ' - ' +driverName+ '</li>');

            });         
    }          
});

HTML

<ul id="driverDet"></ul>

任何帮助将不胜感激。

编辑:发现 madalin ivascu 指出的问题,需要将“驱动程序”更改为“驱动程序”。还更新了将“数据”解析为 .text 的代码,然后就亮了!

【问题讨论】:

  • 你能发布xml吗?
  • 我已经添加了xml

标签: jquery html xml parsing service


【解决方案1】:

在您的查找选择器中将驱动程序更改为驱动程序

var xml = "<?xml version='1.0' ?><string><DriverInfo xmlns=\"http://tempuri.org/DriverInfo.xsd\"> <Driver><ID>-1</ID><driver_code>DRIVER01</driver_code><driver_name>DRIVER01 Name</driver_name><transtamp>2017-02-16T14:41:09.9655914+08:00</transtamp></Driver><Driver><ID>-1</ID><driver_code>DRIVER01</driver_code><driver_name>DRIVER01 Name</driver_name><transtamp>2017-02-16T14:41:09.9655914+08:00</transtamp></Driver></DriverInfo></string>",
  xmlDoc = $.parseXML(xml);
$(xmlDoc).find('Driver').each(function() {
  var driverCode = $(this).find('driver_code').text(),
    driverName = $(this).find('driver_name').text();

  $("#ProfileList").append('<li>' + driverCode + ' - ' + driverName + '</li>');

});

演示:https://jsfiddle.net/814yhL3m/

【讨论】:

  • 这确实是我的一个错字。我找到了为什么 var $driver 无法获取数据值的解决方案。 XML 数据需要被解析为 ($(data).text())。现在可以了。我会更新代码。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-25
  • 1970-01-01
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多