与えられた文字列を含む1つ以上の属性を持つすべてのルールノードを取得します。私はそれらを見つけたら、私は新しいものと文字列を交換する必要があります。 私はそれらのXPathクエリをテストしたが、彼らは動作しません:属性に指定された文字列が含まれるすべてのノードを取得します。
string xpathquery = "/FIREWALL/ETH/RULE[contains(@*,'" + toTest + "')]"; //DOES NOT WORK
string xpathquery = "/FIREWALL/ETH/RULE[contains(attribute::*,'" + toTest +"')]"; //DOES NOT WORK
奇妙なことは、私は@attributenameまたは属性:: attributeNameのを使用している場合、それは実際に動作することです。エラーはどこですか?
私は2つの異なるケースがあるかもしれませんので、のは、私は$ HOST2で$ HOST1を交換したいとしましょう含まれている機能を使用しています:
<RULE .... host="$HOST1"/> //NO PROBLEM
<RULE .... host="$HOST1:21"/> //I NEED TO REPLACE ONLY $HOST1, NOT THE ENTIRE STRING
私はただのXmlNodeのValue属性を設定するが、私はできません文字列を変更する必要があります。実際には、XPathでこれをfindとreplaceなどで処理できるかどうかはわかりません。
あなたは間違いなく* *このためのXPathを使用しますか?個人的に私はLINQをXMLに直接使用したいと思いますが、明らかにあなたの呼び出しです。 –
LINQでより簡単な解決策があれば...私はそれを使ったことはありませんが、私は学ぶことができます。 SQLに似たクエリ言語のように見えますが、そうですか? – raz3r