XMLデータを読み込み、フォーマットしようとしています。私はXSLTを使用してデータを読んでいます。私はその問題に直面しています。誰かが私を助けてくれましたか?値が存在しない場合の空白ノードの作成
私は親ノードが1つしかなく、残りのXML階層はフラットな階層であるXML入力を持っています。
<employee>
<Name>ABC</Name>
<Department>IT</Department>
<Age>30</Age>
<Salary>40000</Salary>
<Name>XYZ</Name>
<Department>IT</Department>
<Age>25</Age>
<Salary>30000</Salary>
</employee>
ここで、名前ノードは必須ノードであり、残りはオプションノードです。私の要件は、任意のオプションのノードが入力XMLに存在しない場合は、空のノードを作成します。
しかし、私が最初の従業員のノードを持っていない以下のシナリオでは、コードが失敗しています。
<employee>
<Name>ABC</Name>
<Department>IT</Department>
<Age>30</Age>
<Name>XYZ</Name>
<Department>IT</Department>
<Age>25</Age>
<Salary>30000</Salary>
</employee>
私が書いたコードは、すべてのデータが
<employee>
<Name>ABC</Name>
<Department>IT</Department>
<Age>30</Age>
<Salary>30000</Salary>
<Name>XYZ</Name>
<Department>IT</Department>
<Age>25</Age>
<Salary></Salary>
</employee>
以下のようなその与えて出力入力ではなく、言及したシナリオに来ているとき、これが正常に動作している
<xsl:element name="Employee_Information">
<xsl:for-each select="Name">
<xsl:variable name="positionVariable">
<xsl:value-of select="position()"/>
</xsl:variable>
<xsl:element name="Employee_Name">
<xsl:value-of select="."/>
</xsl:element>
<xsl:element name="Employee_Dept">
<xsl:value-of select="../Department[number($positionVariable)]"/>
</xsl:element>
<xsl:element name="Employee_Name">
<xsl:value-of select="../Age[number($positionVariable)]"/>
</xsl:element>
<xsl:element name="Employee_Name">
<xsl:value-of select="../Salary[number($positionVariable)]"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
です間違った従業員のブランクノードを作成します。 2番目の従業員の空白ノードを作成し、最初の従業員の空ノードを作成する必要があります。
その他の情報が必要な場合はお知らせください。 ありがとうございます。 Kaushik
あなたはXSLT 1.0を使用しています2.0? –
私はXSLT 1.0を使用しています –