私は "再解析"したい複雑なXMLツリーを持っています。私がしたいのは、与えられた属性を持つすべてのオブジェクトを取得して(「型」と言う)、それらの間の関係を取得することです。つまり、type属性の要素のみのツリー構造を作り直したいということです。さらに、これはXSLTなどを使用できない理由です。ベースXMLツリーからノード(要素)への参照を新しく作成したオブジェクト(要素を持つ要素)に配置する必要があります。XMLツリーを単純化する - 要素間の関係を取得する
私はcompareDocumentPosition方法を確認したが、ラインの位置にそれが唯一の拠点、木の関係
手順2で何を意味するのかよく分かりませんが、唯一のことは疑問です - XPath NodeSetの結果はうまく整理されますか?私の仕事はもっと複雑です - 実際には、左側からノードへの参照を持つ私のカスタムオブジェクトを使って右側に表示するツリーを再作成する必要があります。ツリーを再作成するということは、自分のオブジェクトがツリー項目そのもの(parentNode + childNodes)であることを意味します。ですから、XMLノードに基づいて私のカスタムオブジェクトを生成したいのであれば、それは親がすでに存在していることを確認する必要があります。 –
しかし、与えられたノード(例えば、あなたが述べたセットから取ったもの)が、どのノードが本当の親(与えられた属性を持つ最初の親)かを教えてくれるXPathクエリを持っていれば、すべてがより簡単になります。このクエリは存在しますか? –
ええ、それは 'ancestor :: * [@ type] [1]'のようなものです。すなわち、 'タイプ'属性を持つ '最も近い'祖先 –