問題タブ [xpath]
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.
c# - C# を使用して XML ドキュメント内の特定の値を見つける良い方法は何ですか?
ItemID の入力を受け入れ、対応するアイテム番号を返す、Oracle によって公開された WebService を呼び出しています。応答に含まれる XML から返されたアイテム番号を取得したいと考えています。
XML は次のようになります。
<ns0:result>1010603</ns0:result>
特に 1010603 のみを取得することに興味があります。
私は C# を使用して XML を解析する作業をあまり行っていません。これまでのところ、いくつかの異なる方法で遊んでいます。これを行うための推奨される方法は何ですか?
私はVS2008を使用しています(XPathが利用可能など)
c# - XPathExpression の結果を保存して、先祖構造を持つ XML を分離する方法は?
さまざまな深さレベルに存在するいくつかのノードの XPathExpression 選択を使用して、大きな XML ファイルを解析しています。
選択したノードを個別の XML ファイルにエクスポートし、すべての直接の祖先ノード (およびそれらの属性) を保持する最も簡単な方法は何ですか? C# が推奨されます。
ソース XML の例:
「c」ノードに対するフィルタリングに期待されるターゲット XML
編集: XPathExpression と XPathNodeIterator を使用しているのは、特定のノードを結果 XML に含める必要があるかどうかをテストするための追加のロジックがあるためです。XPathExpression だけでは十分ではありません。基本的に、一致する XPathNavigator 要素の配列があり、祖先構造を使用して XML に保存します。
c# - C# で独自の XPathNavigator を実装する
Microsoft の XPathNavigator クラスから派生したクラスの C# 実装例を探しています。そのような記事を教えてくれる人はいますか?
ご存じかもしれませんが、ご存知かもしれませんが、XmlNavigator は、ほとんどのデータ モデルに XPath ナビゲーションを重ねることができるように設計されています。
派生した XPathNavigator クラスを実装しましたが、非常にうまく機能します。再帰的に検索する XPath 式、つまり "//*" を除いて、これは非常に良いことです。
Clone、MoveToFirstChild、または MoveTo のオーバーライドに微妙なバグがあることは確かであり、別の例が存在する場合はそれを調べることが役立つと思いました。
また、これについて論じている雑誌の記事を見たことがあると確信しています。私の検索では何も得られませんでした。多分誰かがそのような記事を覚えています。
xpath - XPathを使用して空白を含む値でノードを検索する
XPathを使用して、xmlファイル内のノードをその値で見つける必要があります。検索するノードに空白を含む値が含まれている場合、問題が発生します。Fe:
2番目の子ノードを見つけるXPathを構築できません。
単純なXPath/Root / Childは両方の子に対して完全に機能しますが、/ Root [Child = valuewithspaces]は空のコレクションを返します。
私はすでに%20、&#20でスペースをマスキングしようとしました。、&nbsp; 引用符と二重引用符を使用します。
まだ運がない。
誰かアイデアがありますか?
xml - 個別の要素とグループ化
次の xml フラグメントがあるとします。
次のようなものを作成する必要があります
のようなキーを使用してみました
しかし、次のステップに進む方法、またはそれが正しいアプローチであるかどうかはよくわかりません。
regex - ID の一部だけをキャプチャする方法は?
ランダムに生成される要素の ID を取得しようとしています。このように要素IDの値を正常に取得できます...
今、私の変数は次のようになります...
「divElement-」を削除して、残っている変数が「12345」になるようにして、後でそれを使用してそれに関連付けられた「form-12345」要素を選択できるようにしたい...次のようなもの:
どうすればこれを達成できるでしょうか?
c# - プログラムでXPathExpressionインスタンスでXPath関数を使用するには?
私の現在のプログラムでは、XmlDocument に適用する XPathExpression インスタンスをプログラムで作成する必要があります。xpath では、「ends-with」などの XPath 関数を使用する必要があります。しかし、XPath で「ends-with」を使用する方法が見つかりません。私
以下のような例外をスローします
未処理の例外: System.Xml.XPath.XPathException: Namespace Manager または XsltC ontext が必要です。このクエリには、プレフィックス、変数、またはユーザー定義関数があります。
MS.Internal.Xml.XPath.CompiledXpathExpr.get_QueryTree() で System.Xml.XPath.XPathNavigator.Evaluate (XPathExpression expr、XPathNodeIterator コンテキスト)
で System.Xml.XPath.XPathNavigator.Evaluate (XPathExpression expr) で
コードは次のようになります。
以下のように、式をコンパイルするときに XmlNamespaceManager を挿入するようにコードを変更しようとしました
XPathExpression.Compile 呼び出しで失敗します。
未処理の例外: System.Xml.XPath.XPathException: 不明な関数のため、このクエリには XsltContext が必要です。MS.Internal.Xml.XPath.CompiledXpathExpr.UndefinedXsltContext.ResolveFuncti on(String prefix, String name, XPathResultType[] ArgTypes) で MS.Internal.Xml.XPath.FunctionQuery.SetXsltContext(XsltContext コンテキスト) で MS.Internal.Xml. System.Xml.XPath.XPathExpression.Compile(String xpath, IXmlNamespaceResolver nsResolver) の XPath.CompiledXpathExpr.SetContext(XmlNamespaceManager nsM anager)
XPathExpression.Compile で既製の XPath 関数を使用するコツを知っている人はいますか? ありがとう
.net - XPath式で正規表現を使用できますか?
.//div[@id='foo\d+]
でdivタグをキャプチャするようなものid='foo123'
。
それが重要な場合、私は.NETを使用しています。
c# - .NET で非常に大きな XML ファイルで XPath を使用するにはどうすればよいですか?
複雑な xpath クエリの実行を含め、C# でかなり大きな XML ファイル (ここでは、1 ギガバイトを超える可能性がある) に対して何らかの処理を行う必要があります。私が抱えている問題は、System.XML ライブラリを介して通常これを行う標準的な方法では、何かを実行する前にファイル全体をメモリにロードするのが好きであり、このサイズのファイルでメモリの問題が発生する可能性があることです。
ファイルを読み取って、ファイルに含まれるデータを照会するだけで、ファイルを更新する必要はまったくありません。一部の XPath クエリは非常に複雑で、いくつかのレベルの親子型関係にまたがっています。これが、データをブロックとしてメモリにロードするのではなく、ストリーム リーダーを使用する機能に影響するかどうかはわかりません。
これを機能させる方法の 1 つは、ストリーム ベースのアプローチを使用して単純な分析を実行し、XPath ステートメントを XSLT 変換にラップして、後でファイルに対して実行できるようにすることです。ただし、少し複雑に思えます。
または、XPath クエリが実行されない要素がいくつかあることを知っているので、ドキュメントを元のツリー構造に基づいて一連の小さなフラグメントに分割できると思います。あまりにも多くの混乱を引き起こします。
ここで私の目的を説明しようとしたので、一般的なアプローチに関して完全に間違ったツリーを吠えている場合は、皆さんが私を正しく設定できると確信しています...