XSLテンプレートを使用して、次のXML構造の入力を変換する必要があります。XSLテンプレートを使用してXMLを変換する
<?xml version="1.0" encoding="Windows-1252" standalone="no"?>
<ECG>
<R000>4</R000>
<R001>
<A01>R1 A1 Data</A01>
<A02>R1 A2 Data</A02>
<A03>R2 A3 Data</A03>
</R001>
<R002>
<A01>R2 A1 Data</A01>
<A02>R2 A2 Data</A02>
<A03>R2 A3 Data</A03>
</R002>
<R003>
<A01>R3 A1 Data</A01>
<A02>R3 A2 Data</A02>
<A03>R3 A3 Data</A03>
</R003>
<R004>
<A01>R4 A1 Data</A01>
<A02>R4 A2 Data</A02>
<A03>R4 A3 Data</A03>
</R004>
</ECG>
タグR000
は、多くのRXXX
レジスタはXMLが含まれています方法を決定します。この考え方は、XSLを使用してXMLを次の出力に変換することです。この場合、値を4つのR000
に適用します。この考え方は、入力に乱数を使用することで、n個のレジスタを処理します。 A01
、A02
、A03
のタグが常に表示されます。 RXXX
の番号は可変です。 XSL以下、私が試してみました
<?xml version="1.0" encoding="Windows-1252" standalone="no"?>
<input>
<data>
<registry DATA1 = "R1 A1 Data" DATA2 = "R1 A2 Data" DATA3 = "R1 A3 Data"/>
<registry DATA1 = "R2 A1 Data" DATA2 = "R2 A2 Data" DATA3 = "R2 A3 Data"/>
<registry DATA1 = "R3 A1 Data" DATA2 = "R3 A2 Data" DATA3 = "R3 A3 Data"/>
<registry DATA1 = "R4 A1 Data" DATA2 = "R4 A2 Data" DATA3 = "R4 A3 Data"/>
</data>
</input>
:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:element name="input" >
<xsl:element name="data" >
<xsl:element name="registry" >
<xsl:attribute name="DATA1">
<xsl:value-of select="ECG/R001/A01"/>
</xsl:attribute>
<xsl:attribute name="DATA2">
<xsl:value-of select="ECG/R001/A02"/>
</xsl:attribute>
<xsl:attribute name="DATA3">
<xsl:value-of select="ECG/R001/A03"/>
</xsl:attribute>
</xsl:element>
<xsl:element name="registry" >
<xsl:attribute name="DATA1">
<xsl:value-of select="ECG/R002/A01"/>
</xsl:attribute>
<xsl:attribute name="DATA2">
<xsl:value-of select="ECG/R002/A02"/>
</xsl:attribute>
<xsl:attribute name="DATA3">
<xsl:value-of select="ECG/R002/A03"/>
</xsl:attribute>
</xsl:element>
<xsl:element name="registry" >
<xsl:attribute name="DATA1">
<xsl:value-of select="ECG/R003/A01"/>
</xsl:attribute>
<xsl:attribute name="DATA2">
<xsl:value-of select="ECG/R003/A02"/>
</xsl:attribute>
<xsl:attribute name="DATA3">
<xsl:value-of select="ECG/R003/A03"/>
</xsl:attribute>
</xsl:element>
<xsl:element name="registry" >
<xsl:attribute name="DATA1">
<xsl:value-of select="ECG/R004/A01"/>
</xsl:attribute>
<xsl:attribute name="DATA2">
<xsl:value-of select="ECG/R004/A02"/>
</xsl:attribute>
<xsl:attribute name="DATA3">
<xsl:value-of select="ECG/R004/A03"/>
</xsl:attribute>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
私はそれがないことを行うための最善の方法だと思います!タグの数が不明なのでRXXX
です。何か案が?私はループサイクルを考えましたが、ここでは不可能と思われます。おかげ
ですから、これで立ち往生している場所を正確に? –
何を試しましたか? –
XSLの使用に問題があります。 RXXX値を取得するためのForループが必要だと考えてください。私はそれをすることができませんでした!ありがとう –