2017-09-11 2 views
0

1つのXMLファイルの2つのセクション以下。複数の一致が1つの値を選択

私はノードを名前cutSevenと突き合わせて、最初のchildnodesテキストを選択しようとしています。

一致するパスは不明であるため、各XMLは異なる位置に類似の情報を持っています。

私はこれらの情報を含むいくつかのXMLを扱っています。私は自動的に更新可能な概要を作成する方法を検討中です。

入力XML

<Transform> 
    <param name="originalHeader"> 
     <path>$header</path> 
    </param> 
    <param name="cutSeven"> 
      <path>"fi.siikjin.exitorder.seasam.accesscontrol.k1"</path> 
    </param> 
</Transform> 
. 
. 
. 
<Transform> 
    <param name="originalHeader"> 
     <path>$header</path> 
    </param> 
    <param name="cutSeven"> 
      <path>"fi.siikjin.exitorder.seasam.accesscontrol.k1.accesscontrol_k1.accesscontrol"</path> 
    </param> 
</Transform> 

マイ表現

<xsl:value-of select="//@name[normalize-space(.) = 'cutSeven']/parent::*[1]"/> 

は出力に私をもたらします:期待

<path>"fi.siikjin.exitorder.seasam.sec.accesscontrol.k1"</path> 
<path>"fi.siikjin.exitorder.seasam.sec.accesscontrol.k1.accesscontrol_k1.accesscontrol"</path> 

<path>"fi.siikjin.exitorder.seasam.accesscontrol.k1"</path> 

最初に一致するノードのみを選択し、それ以上の一致を無視するにはどうすればよいですか?または私によると、1つの値だけを出力します。 アドバイスありがとうございます!

答えて

2

//*[@name = 'cutSeven']は、その値がnameのすべての要素を選択し、最初の要素は(//*[@name = 'cutSeven'])[1]です。

+0

ありがとうございました! '(// @ name [normalize-space(。)= 'cutSeven'])[1]/parent :: *'私のために働く – MypR

関連する問題