【问题标题】:how to retrieve xml child nodes using jquery如何使用jquery检索xml子节点
【发布时间】:2018-09-12 11:35:58
【问题描述】:

xml 的格式如下图时,我很难检索它,我可以检索InventoryResponse 就好了,但是当试图让孩子a:Cost它不起作用时。我试图进行研究,但没有看到任何适用于我的情况的例子。获得成本的最简单方法是什么?

 $.ajax({
      type: 'POST',
      url: 'php/test.php',
      dataType:"xml",
      data: {
        search:'set',
      },

      success: function(data){

    var xml =  $(data).find('InventoryResponse').html() ;
    var cost=  $(data).find('a:Cost').html() ;

    $('.display').html(cost) ; 
      }
    })

test.php 文件返回 xml

<InventoryResponse>
  <Inventories>
    <a:Inventory>
       <a:ID>
         12345
       </a:ID>
       <a:Cost>
         20.00
       </a:Cost>
     </a:Inventory>
   </Inventories>
</InventoryResponse>

【问题讨论】:

    标签: javascript php jquery ajax xml


    【解决方案1】:

    这个呢?

    var cost=  $(data).find('a\\:Cost').html() ;
    

    【讨论】:

    • 很高兴为您提供帮助 :-)
    • 作为解释,jQuery 不支持 XML 命名空间。但它可以将包含命名空间别名的节点名称视为名称。 : 在 CSS 选择器中有意义,因此必须使用 \ 对其进行转义。 \ 必须在 JS 字符串文字中转义 - 你最终会得到 \\:
    【解决方案2】:

    请尝试以下代码

    var parser, xmlDoc;
        var text = "<InventoryResponse><Inventories><a:Inventory><a:ID>12345</a:ID><a:Cost>20.00</a:Cost></a:Inventory></Inventories></InventoryResponse>";
    
        parser = new DOMParser();
        xmlDoc = parser.parseFromString(text, "text/xml");
    
    
        alert(xmlDoc.getElementsByTagName("InventoryResponse")[0].childNodes[1].childNodes[0].childNodes[1].innerHTML);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多