2011-08-11 34 views
16

現在のノードの親ノードの名前を取得する正しい構文は何ですか?私はAxisNameの親について知っていますが、正しい構文は何ですか?次のXML現在のノードの親ノード名を取得する方法は?

要素変数の
<netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2" location="file:/dev/null" iosp="lasp.tss.iosp.ValueGeneratorIOSP" start="0" increment="1"> 
    <attribute name="title" value="Vector time series"/> 
    <dimension name="time" length="100"/> 
    <variable name="time" shape="time" type="double"> 
     <attribute name="units" type="String" value="seconds since 1970-01-01T00:00"/> 
    </variable> 
    <group name="Vector" tsdsType="Structure" shape="time"> 
     <variable name="x" shape="time" type="double"/> 
     <variable name="y" shape="time" type="double"/> 
     <variable name="z" shape="time" type="double"/> 
    </group> 
</netcdf> 

の例えば 私はNetCDFファイルまたはグループを取得する必要があります。前もって感謝します。

+1

良い質問、+1。現在のノードの親の名前に評価される最短のXPath式については、私の答えを参照してください。また、親が名前を持たない理由も説明します。最後に、これは本当にXPathの質問であり、XSLTの質問ではありません。 –

答えて

8

name(parent::*)とする必要があります。明らかに親が1人になるだけです。

29

使用

name(..) 

..略語がparent::node()の省略形です。

注記:すべての親が名前を持っているわけではありません。たとえば、文書ノード(/)は、文書の最上位要素(/*)の親であり、名前はありません。

+0

私のケースではRetriveの親の名前のためにそれを使用して、Out Memoryエラーにドライブする代わりに、名前(parent :: *)を使用します。 –

+0

@CarlosCocomこれは、使用している特定のXPath実装がバグであることを示しています。 XML文書(できれば非常に短い)と正確なXPath式を提供できると面白いでしょう。 –

関連する問題