0

CRM Dynamics 2011 を使用しています。このコードがあります。

var roles = oXml.selectNodes("//BusinessEntity/q1:name");

ここで、oXml は、XMLHttpRequest で取得した私の xml です。

コードが Chrome で動作する必要がありますが、Chrome は選択ノードをサポートしていないようです。

私は試してみます

var roles = document.evaluate( "//BusinessEntity/q1:name", oXml, null, XPathResult.ANY_TYPE, null );

そして、それは機能しません。何が欠けているのかわからない。

ありがとう!

4

1 に答える 1

0

私はまったく同じ問題を抱えていましたが、解決策を見つけたと思います: コードが機能しない理由は次のとおりです: 適切な XML 名前空間リゾルバーを指定していません。これは、Chrome または Firefox が要素 "q1:name" を見つける方法を理解できないことを意味します。

以下に、CRM 2011 でビジネス エンティティの名前を取得するための正しいバージョンを示します。

function nsResolver(prefix) {
  var ns = {
    'q1': 'http://schemas.microsoft.com/crm/2007/WebServices'
  };

  return ns[prefix] || null;
}

var roles = node.evaluate("//BusinessEntity/q1:name", oXml, nsResolver, XPathResult.ANY_TYPE, null);

名前空間解決の詳細については、https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript#Implementing_a_User_Defined_Namespace_Resolverを参照してください。

お役に立てれば!

于 2013-04-29T10:41:14.743 に答える