2012-02-08 15 views
1

私はのSharePointサーバにInfopath 2007フォームを展開する場合、SELECTSINGLENODEは常にnullを返しますが、常にローカルで動作します。SELECTSINGLENODEは常にnullを返します

のXPathNavigatorベンダー= payeeDS.SelectSingleNode(
「/ DFS:マイフィールド/ DFS:ここで失敗している次のコードの例であるdataFields/TNS:GetVendorsResponse/TNS:GetVendorsResult/NewDataSet /ベンダーS [名前= '" + payeeTypedName +"'] "、NamespaceManager);

イベントビューアに書き込んでいるので、コードが実際にヒットしたことを確認できます。このフォームは管理者の承認を受けており、フル・トラストを持っています。

この問題の原因は何ですか?

ありがとうございます。

答えて

0

XPathNavigatorの動作は環境によって変化しません。私は確信していませんが、おそらく2つの問題のいずれかがあります。

payeeDSが有効なXMLファイルとしてロードされていないと読み取ることができない、または可能性が高く、

Sharepointのは、XMLファイルにいくつかの名前空間を追加した、とあなたはあなたのナビゲーションを変更する必要がありますどちらか。

+0

お返事ありがとうございました。これらのXMLファイルを検証するにはどうすればよいですか? – user1198171

0

ノード・パスを確認してください。( "/ DFS:マイフィールド/ DFS:dataFields/TNS:GetVendorsResponse/TNS:GetVendorsResult /) パスの最初の部分は一つの名前空間(DFS :)と他の部分に中です。のようなWebサービスと

IXMLDOMDocument2 domXml = (IXMLDOMDocument2)xDocument.DataObjects[dataSource].DOM; 
      string selectionNamespaceValue = string.Empty; 
    public const string SELECTION_NAMESPACE_VALUE = 
     "xmlns:dfs='http://schemas.microsoft.com/office/infopath/2003/dataFormSolution' xmlns:ns1='{0}'"; 

       selectionNamespaceValue = string.Format(CultureInfo.CurrentCulture, Constants.SELECTION_NAMESPACE_VALUE,Constants.DEFAULT_WEB_SERVICE); 
domXml.setProperty("SelectionNamespaces", selectionNamespaceValue); 
  1. あなたがいずれかの方法でノードにアクセスできます。他の名前空間(TNS :) あなたは二つのこと

    1.Set TNSの名前空間を行うことができますこれ。

    payeeDS.SelectSingleNode( "/ dfs:myFields/dfs:dataFields).. firstChild.firstChild;

関連する問題