【问题标题】:jQuery syntax for selecting XML nodes用于选择 XML 节点的 jQuery 语法
【发布时间】:2013-02-14 06:25:09
【问题描述】:

我们目前正在准备使用 UR 12 升级 CRM 2011,升级后可能会出现一些 javascript 片段。

与 XML 相关的函数是一些突出显示为潜在代码的函数。 所以我想用等效的 JQuery 替换这些函数,但对 jQuery 不太了解

假设 'result' 是来自 xmlhttprequest 的 XML 响应,我们如何将以下代码转换为使用 jquery

result.selectNodes("//EntityMetadata/DisplayName/LocLabels/LocLabel/Label");

会像

$(result).find(("//EntityMetadata/DisplayName/LocLabels/LocLabel/Label");

【问题讨论】:

  • 这个 XML 是从哪里来的? OData?

标签: jquery dynamics-crm-2011


【解决方案1】:

看来 jQuery once had rudimentary XPath support.然而,这似乎不再是这样了。你可能会觉得Cross-browser XPath implementation in JavaScript很有趣。

此外,没有要求XMLHttpRequest 的结果是 XML。可以是文本、JSON、二进制数据等。

【讨论】:

    【解决方案2】:

    尽管这没有考虑到您关于 jQuery 的问题,但它显示了 CRM SDK 中描述的一种方式。

    看看JavaScript Best Practices article。本文链接到a sample where a compatible implementation of selectNode 显示

    function _selectNodes(node, XPathExpression) {
      if (typeof (node.selectNodes) != "undefined") {
       return node.selectNodes(XPathExpression);
      }
      else {
       var output = [];
       var XPathResults = node.evaluate(XPathExpression, node, _NSResolver, XPathResult.ANY_TYPE, null);
       var result = XPathResults.iterateNext();
       while (result) {
        output.push(result);
        result = XPathResults.iterateNext();
       }
       return output;
      }
     };
    

    【讨论】:

    • 感谢以上参考。看起来不错的解决方案,我试试看。
    猜你喜欢
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多