2

我在 Windows Phone 上遇到了 Cordova 2.6.0 和 jQuery 1.8.1 的问题!

当我制作一个$(xmlHttpRequest.responseXML).find("Item")(适用于 iOS / Android 和浏览器)时,它会在 Windows 手机上返回一个空元素...我需要制作一个xmlHttpRequest.responseXML.documentElement并在子项中导航以找到我的元素...

所以问题似乎是 jQuery 但为什么呢?有任何想法吗 ?

谢谢 !

编辑:我得到的 SOAP 信封是这样的(在 WP8 上用 Fiddler 看到)

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <MethodName xmlns="http://url.com/services/contract">
      <MethodNameResult xmlns:a="http://schemas.datacontract.org/2004/07/xxx.yyy.aaa.bb.cc.Result" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <a:Item xmlns:b="http://schemas.datacontract.org/2004/07/xxx.yyy.aaa.bb.cc"> 
          <b:Active>Active</b:Active>
          <b:Comment i:nil="true"/>
          <b:Company>My company</b:Company>
          <b:DisplayName>The best company ever</b:DisplayName>
          <b:Email>contact@url.com</b:Email>
          <b:Fax i:nil="true"/>
          <b:FirstName>Alx</b:FirstName>
          <b:GenderTypeId>Male</b:GenderTypeId>
          ...

编辑:.find("a:Item")不起作用!

4

2 回答 2

2

另一种解决方案是制作这样的新功能:

 $.fn.filterNode = function(name) {
    return this.find('*').filter(function() {
       return this.nodeName === name;
    });
 };

并将名称设置为 "a:Item" !

我不知道为什么,但这个解决方案适用于 WindowsPhone Web App !

于 2013-04-25T09:37:35.597 回答
1

您不应该那样解析 XML,而应使用 jQuery 和 DataType xml 的 ajax 方法。我不知道这是否会导致问题,但它可能是。

检查这篇文章: 可以使用 jQuery 的 $(responseXML) 语法可靠地解析 XML 吗?

于 2013-04-24T14:08:26.147 回答