1

私は初めてで、ノードごとxsltに下に並べ替えたいxml

  <HAZARDS>
  <HAZARD>
    <ID>00000000000000000001</ID>
    <TEXT>Interior</TEXT>
    <TYPE>I</TYPE>
    <ACTIVE/>
    <COMMENTS>
      <COMMENT>
        <ID>00000000000000000011</ID>
        <VALUE>Other</VALUE>
        <ACTIVE>1</ACTIVE>
      </COMMENT>
    </COMMENTS>
    <REMEDIES>
      <REMEDY>
        <ID>00000000000000000012</ID>
        <VALUE>Other</VALUE>
        <ACTIVE>1</ACTIVE>
      </REMEDY>
    </REMEDIES>
  </HAZARD>
  <HAZARD>
    <ID>00000000000000000002</ID>
    <TEXT>Exterior</TEXT>
    <TYPE>E</TYPE>
    <ACTIVE/>
    <COMMENTS>
      <COMMENT>
        <ID>00000000000000000021</ID>
        <VALUE>Other</VALUE>
        <ACTIVE>1</ACTIVE>
      </COMMENT>
    </COMMENTS>
    <REMEDIES>
      <REMEDY>
        <ID>00000000000000000022</ID>
        <VALUE>Other</VALUE>
        <ACTIVE>1</ACTIVE>
      </REMEDY>
    </REMEDIES>
  </HAZARD>
</HAZARDS> 

出力は次のようになります。

  <HAZARDS>     
   <HAZARD>
      <ID>00000000000000000002</ID>
      <TEXT>Exterior</TEXT>
      <TYPE>E</TYPE>
      <ACTIVE/>
      <COMMENTS>
        <COMMENT>
          <ID>00000000000000000021</ID>
          <VALUE>Other</VALUE>
          <ACTIVE>1</ACTIVE>
        </COMMENT>
      </COMMENTS>
      <REMEDIES>
        <REMEDY>
          <ID>00000000000000000022</ID>
          <VALUE>Other</VALUE>
          <ACTIVE>1</ACTIVE>
        </REMEDY>
      </REMEDIES>
    </HAZARD>
    <HAZARD>
      <ID>00000000000000000001</ID>
      <TEXT>Interior</TEXT>
      <TYPE>I</TYPE>
      <ACTIVE/>
      <COMMENTS>
        <COMMENT>
          <ID>00000000000000000011</ID>
          <VALUE>Other</VALUE>
          <ACTIVE>1</ACTIVE>
        </COMMENT>
      </COMMENTS>
      <REMEDIES>
        <REMEDY>
          <ID>00000000000000000012</ID>
          <VALUE>Other</VALUE>
          <ACTIVE>1</ACTIVE>
        </REMEDY>
      </REMEDIES>
    </HAZARD>
    </HAZARDS>

いくつかの投稿を見て xslt の下に作成しましたが、うまくいかないようです

 <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="HARARDS">
        <xsl:for-each select="//HAZARD">
            <xsl:sort select="TEXT"/>
        </xsl:for-each>
    </xsl:template>
    <xsl:template match="HAZARDS"/>
    <xsl:template match="node()|@*">
        <xsl:copy>
            Heading ------- 
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

ご協力いただきありがとうございます。

4

1 に答える 1