問題タブ [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.
xslt - XSLT を使用したメタデータ駆動型の生成
私は定期的に、レガシー システムの独自のデータ モデルを変換して XSD スキーマを作成しています。これはかなりうまくいきます。int
ただし、従来のシステムでは、データ型 ( など) など、パラメーターの非常に基本的な属性しか指定できませんstring
。
変換の詳細を提供するために、メタデータを追加できるメカニズムで XSL 変換を強化したいと考えています。XPath に属性を割り当てる Java プロパティ表記のようなものを考えました。
次の例を想像してください。
従来のシステム データ モデル(実際にはきちんとしていますが、デモンストレーション目的に最適です)
メタデータ
結果の XSD スキーマ
それについてどう思いますか?XSL スタイルシートにメタデータを含める方法はありますか?
c++ - MSXML 選択ノードが機能しない
私は自動テストアプリに取り組んでおり、現在、同一である必要があるがそうではない可能性がある2つのXMLファイル間の値を比較する関数を作成中です。処理しようとしている XML のサンプルを次に示します。
<subreport>
(複数の要素があり、それらの中に複数の要素があることに注意してください<record>
。)
私が望むのは<value>
、2 つのドキュメントのタグを抽出し、それらの値を比較することです。その部分は私が行う方法を知っています。問題は抽出そのものです。
私は C++ で立ち往生しているので、MSXML を使用しており、データ形式を変更することにした場合に備えて、アプリが実際の XML 操作を抽象化できるようにするラッパーを作成しました。
そのラッパーである CSimpleXMLParser は、XML ドキュメントをロードし、その「トップ レコード」を XML ドキュメントのドキュメント要素に設定します。(CRecord は、そのサブクラスの 1 つである CXMLRecord を持つ抽象クラスであり、子レコードへの単独またはグループによるアクセスを提供し、Record の「値」へのアクセスも許可します (CXMLRecord の場合、子要素または属性の値) .) CXMLRecord には、MSXML::MSXMLDOMNodePtr と、CSimpleXMLParser のインスタンスへのポインターが含まれています。) ラッパーには、CXMLRecord が子レコードを返すために使用する、子を返すためのユーティリティ関数も含まれています。
私のコードでは、次のことを行います (<subreport>
機能するかどうかを確認するためだけにすべてのノードを返そうとします)。
これは常に false を返します。CXMLRecord::GetChildRecords() の実装の本質は基本的に
CSimpleXMLParser::SelectNodes() は次のとおりです。
実行すると、トップ レコードが確実に<report>
要素に適切に設定されます。子ノードの取得 (ラッパー経由ではなく、MSXML インターフェイス経由) やその名前など、あらゆる種類の処理を実行できます。アプリの別の場所で解析のために使用しているため、ラッパーが機能することはわかっています。 XML 構成ファイルであり、問題なく動作します。
XPath クエリ式で何か間違ったことをしているのかもしれないと思いましたが、考えられるすべての順列は喜びを与えません。このXML ファイルを処理しようとすると、MSXML::IXMLDOMNodeListPtr
返されるIXMLDOMNodePtr::SelectNodes()
は常に長さ 0 です。
これは私を夢中にさせています。
python - XPathを介してHTMLを解析する
.Netで、XPathを使用して整形式でないHTMLを簡単に解析できるこの優れたライブラリHtmlAgilityPackを見つけました。私はこれを.Netサイトで数年間使用しましたが、Python、Ruby、およびその他のプロジェクト用のより面倒なライブラリを受け入れる必要がありました。他の言語の同様のライブラリを知っている人はいますか?
delphi - Delphi および XPath 関数
Delphi の関数 selectNodes() で Xpath ノード セット関数 position() を使用して、ノード リストから特定の数の要素のみを選択できますか? 私がこれを好きなら:
すべて問題なく、インデックス1の要素を取得しますが、試してみると
試してみると、「不明なメソッド」という例外が発生します
「予期しないトークン <」が表示されます。私はdelphi7を使用しており、新しいバージョンのmsxmlを使用して新しいタイプライブラリをプロジェクトにインポートしました。
python - lxml (Python) で XHTML ドキュメントを処理するときに xpath が機能しないのはなぜですか?
次のテスト ドキュメントに対してテストしています。
lxml.html を使用してドキュメントを解析すると、xpath を使用して IMG を取得できます。
ただし、ドキュメントを XML として解析して IMG タグを取得しようとすると、空の結果が得られます。
要素に直接移動できます。
しかしもちろん、それは任意のドキュメントを処理するのには役立ちません。また、etree にクエリを実行して、この要素を直接識別する xpath 式を取得できることも期待しています。技術的には、次のように実行できます。
しかし、その xpath も、任意のドキュメントの解析には明らかに役に立ちません。
明らかに、ここでいくつかの重要な問題が欠けていますが、それが何であるかはわかりません。私の最善の推測は、名前空間と関係があるということですが、定義されている唯一の名前空間はデフォルトであり、名前空間に関して他に何を考慮する必要があるかわかりません。
それで、私は何が欠けていますか?
xml - XPathを使用してXMLドキュメント内の複数の属性セットを選択するにはどうすればよいですか?
2つの異なる属性セットを返す単一のXPathステートメントを作成するのに問題があります。
たとえば、次のXMLドキュメントを取り上げます。
次のXPathステートメントを使用する場合:
次の属性セットが生成されます。
次の属性セットを生成するためにどのステートメントを使用しますか?
java - JAVA: XPath 式を使用して XML ドキュメントを作成する
これが実際には XPath の目的ではないことはわかっていますが、値に対する XPath 式の HashMap がある場合、XML ドキュメントを作成するにはどうすればよいでしょうか。dom-4j の DocumentHelper.makeElement(branch, xpath) を見つけましたが、属性やインデックスを作成することはできません。確かにこれを行うことができるライブラリが存在しますか?
次のようになります。
c# - .NET で XPath を確認する
特定の xpath 文字列が C#/.NET で有効であることを確認するにはどうすればよいですか?
XPath を実行して例外をキャッチするだけが有効な解決策であるかどうかはわかりません (しばらく喉に胆汁を置いておきます) - 明日、テストしていない他の入力に出くわしたらどうなるでしょうか?
xml - XQuery(またはXPath)には、選択だけでなく、更新、挿入、削除に相当するものがありますか?
XPathを使用してXMLから必要なものを見つける方法を知っています。構文には少し慣れが必要ですが、非常に強力です。XQueryの学習にも興味がありますが、SQLのような構文は扱いにくいようです。それでも、同等の選択だけでなく、SQLのように更新、挿入、削除もできるのであれば、すべての厄介さを許します。
では、XQueryには、選択だけでなく、更新、挿入、削除に相当するものがありますか?
XPathには、私が見落としていたこれらの同等物がありますか?