2017-08-08 18 views
0

私はXpath式が初めてで、いくつかの質問があります。変数をxpath式ステートメントに挿入する方法C#?

私はxpath式にselectedcountryという文字列を挿入したいので、このようなコーディングを試しましたが、//a[contains(@href, "+selectedCountry+")]/text()としましたが、間違ったデータが戻ってきました。

セッションのselectedCountry文字列がユーザーから取得されるため、内部の値が正しいと確信しています。

私は//a[contains(@href," "+selectedCountry+" ")]/text()に変更すると、次のエラーが表示されます。

型「System.ArgumentNullException」の例外が System.Core.dllで発生したが、ユーザーコード

追加で処理されていませんでした情報:値はnullにはできません。

状況1

string selectedCountry = Session["SelectedCountry"].ToString(); 

HtmlNode[] newnode = doc3.DocumentNode.SelectNodes("//a[contains(@href,'china')]/text()").ToArray(); 

結果:

中国、台湾を切断した後、中国の大使館 を開き 中国外干渉パナマを拒否するアセアンを促す係争海にフィリピンと共同エネルギー開発をバックアップ中国の怒りにもかかわらず、ダライ・ラマ訪問 ボツワナは確認する

状況2

string selectedCountry = Session["SelectedCountry"].ToString(); 

HtmlNode[] newnode = doc3.DocumentNode.SelectNodes("//a[contains(@href,"+selectedCountry+")]/text()").ToArray(); 

結果:

主に家でアジアへジャンプ PacificSingaporeWorldCNA InsiderBusinessSportLifestyleTechnologyHealthCommentaryCatchアップテレビ

+0

私は//」に変更すると、[(含まれています@ href、 "" + selectedCountry + "")]/text() "と入力すると、エラーが表示されます。 C#の実際の行は何ですか?私はそれがどのようにコンパイルされるのか見ていないからです。 –

答えて

0

"//a[contains(@href, 'china')]/text()"もし作品をしかし、それを"//a[contains(@href, "+selectedCountry+")]/text()"保証するものではありません。 selectedCountryが、それはアポストロフィが含まれていない場合のいずれか、アポストロフィ

含む'china'が含まれている変数に追加したり、文字列に追加します:

"//a[contains(@href, '"+selectedCountry+"')]/text()" 
関連する問題