2017-08-29 7 views
0

name=SomeName2でノードをxsltにして、その子ノードテキストを出力として取得しようとしています。私は彼らがxmlファイルにどこにいるのかわからないし、それらの位置はさまざまなxmlファイルで常に異なっています。特定のネーミングタグを持つノードを検索

xmlファイルでノード名を調べるオプションはありますか?ノード名前空間ではありませんか?

ここに私のXMLファイル:あなたが使用できる

<con1:node>    
       <con2:node name="SomeName"> 
        <con2:path>'Text'</con2:path> 
       </con2:node> 
       <con2:node name="SomeName2"> 
        <con2:path>'Text'</con2:path> 
       </con2:node> 
       <con2:node name="SomeName3"> 
        <con2:path>'Text'</con2:path> 
       </con2:node> 
<con1:node> 

答えて

1

<?xml version="1.0" encoding="UTF-8"?> 
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
     version="2.0"> 
     <xsl:output indent="yes" method="text"/> 
     <xsl:template match="/"> 
      <xsl:value-of select="//@name[normalize-space(.) = 'SomeName2']/parent::*"/> 
     </xsl:template> 
    </xsl:stylesheet> 
+0

ブリリアント、多くの感謝! – MypR

+0

それは '// @ name [normalize-space( ')=' SomeName2 ']/parent :: *'を実行する点です。どうして '// * [@ name = 'SomeName2']'? – Tomalak

関連する問題