1

Infopath 2007フォームをSharePointサーバーに展開すると、 SelectSingleNodeは常に null を返しますが、常にローカルで動作します。失敗している次のコードの例を次に示します。

XPathNavigator vendor = payeeDS.SelectSingleNode(
"/dfs:myFields/dfs:dataFields/tns:GetVendorsResponse/tns:GetVendorsResult/NewDataSet/Vendor s[Name='" + payeeTypedName + "']", NamespaceManager);

実際にコードがヒットしていることを確認できるように、イベントビューアーに書き込んでいます。フォームは管理者によって承認されており、完全に信頼されています。

この問題の原因について何か考えはありますか?

ありがとう

4

2 に答える 2

0

XPathNavigator の動作は環境によって変わりません。確かではありませんが、2 つの問題のいずれかを抱えている可能性があります。

payeeDS が有効な XML ファイルとして読み込まれておらず、読み取ることができないか、可能性が高いです。

Sharepoint は NameSpacing を XML ファイルに追加したため、ナビゲーションを変更する必要があります。

于 2012-02-08T21:15:39.877 に答える
0

ノード パスを確認します。 :). できることは 2 つあります

1. Web サービスで tns: の名前空間を設定します。

 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. このようにどちらでもノードにアクセスできます。

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

于 2012-04-23T05:55:33.530 に答える