2011-08-09 4 views
1

与えられたNodeのサブツリー全体(属性、コメント、名前空間宣言を含む)を表すNodeListDocumentに生成する必要があります。明示的なノード参照を与えられた "サブツリー" NodeListを作成する

のは、私の文書はこのように見えたと仮定しましょう:私の結果の選択は、サブツリー

に相当するであろうように、

<?xml version="1.0"?> 
<my:root xmlns:my="http://www.my.com/#"> 
    <my:element type="1"> 
    <my:content green="true"> 
     <xx:content xmlns:xx="http:://www.xx.com/#"/> 
    </my:content> 
    </my:element> 
</my:root> 

は今、私が欲しいもの、その要素自体を含むすべてのサブノードを選択することです

<my:element type="1"> 
    <my:content green="true"> 
    <xx:content xmlns:xx="http:://www.xx.com/#"/> 
    </my:content> 
</my:element> 

)これをどうすれば達成できますか? type属性は一意であると仮定できますか?私は現在、XPath式を使用しています

/descendant-or-self::node()[@type='1']/descendant-or-self::node() 

これを行うより良い方法はありますか?

b)別のシナリオでは、明示的にNodeの参照が与えられていますが、DOM内のコンテキストを知らなくても、記述する特性を使用して「アンカーノード」を巧みに選択する手段がありません。特定のノードのサブツリーを選択するNode参照からXPath式を派生させる方法はありますか?または、この場合、ノードとその子を反復処理することによって手動でNodeListを生成する唯一のチャンスですか?

答えて