問題タブ [xpathnavigator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
902 参照

c# - XPathNodeIterator.Current.SelectSingleNode の下で検索すると、xml ドキュメント全体を検索するだけです

こんにちは、XPathNodeIterator を使用して、XML ドキュメントの下にある XML ノードのリストを反復処理しています。条件が一致するかどうかを繰り返しながら、その現在のノードの下に特定の値が必要です。代わりに、 SelectSingleNode は他の親ノードからノードを返しています...例を挙げましょう:

サンプル XML:

たとえば、すべての「要素」を繰り返し処理し、要素 ID = 2 の「アドレス」を見つけようとしています。さて、繰り返しながら、「Element id=2」にいるとしましょう。ノードが見つかったので、現在のノード (nodeIterator.Current) から "Zip" という単一のノードを選択します。そのために、「/Address/ZipCode」として xpath を使用しています (これは単なる例であるため、ここではフォーマットが間違っている可能性があります)。この場合、null を返す必要がありますが、代わりに "Element id=1" から ZipCode を返します。

どんな助けでもかなり..

0 投票する
3 に答える
1709 参照

c# - 2 つの異なる要素の最初の出現を見つけるための Xpath

以下の例を使用して、xPath を使用して 2 つの異なる要素の最初の出現を見つけたいと思います。たとえば、b と d のどちらが先に現れるかを調べたいとします。b が d の前にあることは明らかです (ツリー レベルではなく、トップダウンで見てください)。しかし、xpathを使用してこれを解決するにはどうすればよいですか?

現在、次のコードを使用して見つけたノードセットの最初の要素を取得することで、ノード (この場合は b と d) を見つけます。

xpath を使用すると、b と d のどちらが先かわかりません。

0 投票する
2 に答える
247 参照

vb.net - Xpath と MoveToAttribute

私はしばらくの間、Xpath(VB.netで)を使用して次のことを試みてきました:

最初に、クエリ文字列で Web ページに渡された「ID」属性を使用してすべての CATEGORY ノードをチェックし、「NAME」属性を文字列変数に割り当てることがわかりました。MoveToFirstAttribute() を使用しようとして混乱していますが、これは機能していません。

サンプル XML は次のとおりです。

別のページの別の場所で次の式を使用して特定のカテゴリを選択したため、PRODUCT 子ノードで作業できますが、特定の CATEGORY ノードを選択してその NAME 属性に移動することはできません。

コードの支援をいただければ幸いです。

どうもありがとう

0 投票する
2 に答える
284 参照

c# - C# を使用して 2 つの XML ノードで選択された値を反復する

これは「Buying Bills.xml」という XML ファイルで、BILLS がルートです。

フォームに 2 つのコンボボックスがあり、それぞれに XML ファイルのすべての日付が含まれています (2 つの同一のリスト)。たとえば、comboBox1 でファイルの最初の日付を選択し、comboBox2 で最後の日付 (または 3 番目の日付など) を選択したとします。これら 2 つの日付の間からすべての価格の合計を取得するにはどうすればよいですか (選択された2つの日付の価格の合計だけでなく、その間の価格の合計も....最初の日付を含むノードXから2番目の日付を含むノードZまでのすべての価格をスイープして計算するようなものです。合計。タイトルが示すように、C# を使用します。よろしくお願いします:)

0 投票する
1 に答える
456 参照

c# - xPath は、式の評価ではなく、XPathNavigator オブジェクトを介して祖先を検索します

特定のノードの先祖を調べようとしています。これを「NodeA」と呼びましょう。「NodeA」ノードのリストを取得し、その祖先を検索して特定の属性値を確認したいと考えています。すべての「NodeA」ノードを取得するコードは次のとおりです。

「// ここで祖先を反復処理」領域では、式を使用してノードを評価し、次の方法で祖先のリストを取得できます (「NodeA」ごとに)。

ただし、これは冗長に思えます。元の xml と XPathNavigator インスタンスがあるため、ナビゲーターを介して式を評価することなく、その時点で先祖を取得することはできませんか? 次のようなもの ( item は XPathNavigator 型です):

また

アイテムに SelectAncestors メソッドがあることに気付きましたが、それを機能させることができませんでした。しかし、それがそれである場合、例は大歓迎です

0 投票する
2 に答える
1323 参照

c# - C# での xpath 関数の文字列結合とトークン化

ASP.NET プロジェクト用に、コントローラー アクションと、ユーザーが xpath 式を入力してサーバー上の xml ファイルから結果を取得できるフォームを作成しました。concat、substring-before、substring-afterなどの一部の文字列関数でも問題なく動作します。

出力の一部のコンマを取り除くために、string-join と tokenize を使用しようとしました。ただし、これらの関数のいずれかを使用すると、XPathException が発生します。

これらの xpath 関数を正しく使用していませんか?

0 投票する
0 に答える
170 参照

xml - Navigator.InsertAfter = 無効な操作例外 - XML & VB.NET

昨日からこれで悩んでいます。次のような XML ファイルがあります (スニペット):

XmlNamespaceManager を使用していくつかのものを削除することができました。すべてがうまく機能します。コード行を挿入しようとすると、次のようにします。

私はいつも同じエラーが発生します:

無効な操作の例外。エクスプローラーの実際の位置により、操作は無効です。

NameSpaceManager を使用しない、InsertAfter、InsertBefore、InsertElementAfter、InsertElementBefore を使用する、navigator.MoveToChild の最初と 2 番目の URI を使用する場合と使用しない場合、xmlns の代わりに xsi を使用して新しい名前空間を追加するなど、いくつか試しました。msdn Web サイトを何度か読みましたが、わかりません。私は何を間違っていますか?

追加する必要があるのは、次の特定の行です。

ノード間で、1 つは Usage と呼ばれ、もう 1 つは Territory と呼ばれます。

今までありがとう バイバイ ゴンザロ

編集: いくつかの使用法タグと地域タグがあることを忘れていました。それらすべての間に同じ行を追加する必要があります。これは問題に関連していますか?.

0 投票する
2 に答える
923 参照

c# - 属性が存在しない要素を選択する xpath クエリ

属性 att が存在しない要素を選択するための xpath クエリは何ですか。

属性 att が存在しない要素を更新したい。

ありがとう