无法从xml中获取子节点

时间:2017-09-22 06:34:07

标签: javascript jquery xml find each

我正在尝试从xml中获取子节点并迭代它但不知何故它不起作用。我的xml文档:

=REPLACE(SUBSTITUTE(PROPER(TRIM(A1))," ",""),1,1,LEFT(LOWER(TRIM(A1))))

和我的javscript代码我用来获取子节点并迭代它。

=REGEXREPLACE(REGEXREPLACE(PROPER(A1),"\s*",""),"^(\w)",LEFT(LOWER(TRIM(A1))))

我调试了代码并发现它没有进入每个jquery。

1 个答案:

答案 0 :(得分:0)

在选择器中使用"a"并转义":",另请参阅Why can't jQuery 3 identify the '#' character in an attribute selector?

var v1 = $(result).find('GetSalutationResponse').find('GetSalutationResult');
if ($(v1).find('a\\:error').length > 0 && $(v1).find('a\\:error').attr('i:nil') != 'true') {
  resp.error = new Error();
  resp.error.ErrorMessage = $(v1).find('a\\:error').find('ErrorMessage').text();
} else {
  resp.salutationslist = new Array();
  $(v1).find('salutationslist').find('a:\\Salutations').each(function() {
    var o1 = new Salutations();
    o1.SalutationID = $(this).find('a:\\SalutationID').text();
    o1.SalutationName = $(this).find('a:\\SalutationName').text();
    resp.salutationslist[resp.salutationslist.length] = o1;
  });
}



var xmldoc = `<GetSalutationResponse xmlns="http://tempuri.org/">
  <GetSalutationResult xmlns:a="http://schemas.datacontract.org/2004/07/Trips_Service.DataClass" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <a:error i:nil="true" xmlns:b="http://schemas.datacontract.org/2004/07/" />
    <a:salutationslist>
      <a:Salutations>
        <a:SalutationID>Mr</a:SalutationID>
        <a:SalutationName>Mr</a:SalutationName>
      </a:Salutations>
      <a:Salutations>
        <a:SalutationID>Mrs</a:SalutationID>
        <a:SalutationName>Mrs</a:SalutationName>
      </a:Salutations>
      <a:Salutations>
        <a:SalutationID>Dr</a:SalutationID>
        <a:SalutationName>Dr</a:SalutationName>
      </a:Salutations>
      <a:Salutations>
        <a:SalutationID>Ms</a:SalutationID>
        <a:SalutationName>Ms</a:SalutationName>
      </a:Salutations>
    </a:salutationslist>
  </GetSalutationResult>
</GetSalutationResponse>`;

var result = xmldoc;

console.log($(result).find("a\\:salutationslist"));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
&#13;
&#13;
&#13;