2016-07-13 8 views
-2

を使用してXMLから特定の要素や属性を取得:私は私はこのような特定のXMLのノードへのアクセスもしてみてください</p> <p>...私は多くの日のためにしてみてください、私はそれを行うにはカントXSLT

<?xml version="1.0" encoding="UTF-8"?> 
<RESP> 
    <ITEM_TAG COUNT ='1'> 
     <ITEM_TAG_ELEMENT index = '1'> 
      <NAME>TAD-DA</NAME> 
      <CODE>54578</CODE> 
     </ITEM_TAG_ELEMENT> 
     <ITEM_TAG_ELEMENT index = '2'> 
      <NAME>TAD-NA</NAME> 
      <CODE>54579</CODE> 
     </ITEM_TAG_ELEMENT> 
    </ITEM_TAG> 
</RESP> 

"for-each"を使わずに要素TAD-DAに直接アクセスしたい私がやろう

は私の悪い英語のため申し訳ありません

<xsl:value-of select="/RESP/ITEM_TAG COUNT ='1'/ITEM_TAG_ELEMENT index = '1'/NAME" /> 

のように、最初の要素の値を取得することですが、私は英語を勉強し始めています。

+1

いくつかの提案をする:(a)あなたは、あなたがしたいものを出力を説明する必要があります作物。 (b)それが機能しなくても、あなたの最高の試みを示すべきである。それから、どこが間違っているのかを見て、間違いを訂正するのを助けます。 (c)われわれはこの文書について何が知られているのか、何が分からないのか分からない。要素名が何であれ、「TAD-DA」を含む最初の要素を探していますか?または、その内容が何であれ最初のNAME要素を探していますか?または、他の何か? –

+1

なぜ「for-eachを使わないで」と言うのですか?この場合、なぜfor-eachが必要なのかはわかりませんが、なぜその言語のサブセットしか使用できないという要件がありますか? –

+0

私は最初の要素NAMEの値を取得しようとしている、貧弱な説明を後悔します。 –

答えて

0

あなたは `のindexと1のCOUNTITEM_TAG、およびITEM_TAG_ELEMENTを取得したい場合は、式はこの

ITEM_TAG[@COUNT='1']/ITEM_TAG_ELEMENT[@index='1'] 

ある次に、あなたがNAMEを得ることができるITEM_TAG_ELEMENTテンプレートマッチングを持っているでしょう例えば、ノード値。

例として、これを試してみてください:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
<xsl:template match="RESP"> 
    <xsl:apply-templates select="ITEM_TAG[@COUNT='1']/ITEM_TAG_ELEMENT[@index='1']" /> 
</xsl:template> 

<xsl:template match="ITEM_TAG_ELEMENT"> 
    <xsl:value-of select="NAME" /> 
</xsl:template> 
</xsl:stylesheet> 

実際には、あなたがこれにそれを簡素化することができ...

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
<xsl:template match="RESP"> 
    <xsl:value-of select="ITEM_TAG[@COUNT='1']/ITEM_TAG_ELEMENT[@index='1']/NAME" /> 
</xsl:template> 
</xsl:stylesheet> 
+0

あなたの答えはありがたいですが、、 ノード[ITEM_TAG]の値をCOUNT = 1属性、[ITEM_TAG_ELEMENT]の属性INDEX = 1としたいのです –

+0

私は答えをどのように修正しましたか?これは行われました –

+0

私はこのソリューションを使用してApache FOPを作成しようとしましたが、なぜ動作しないのか分かりません。( –

関連する問題