特定XML格式的XSLT

时间:2015-04-23 15:57:17

标签: xml xslt

我正在尝试创建一个XSL,以便更好地显示由组织内的进程自动创建的XML文档。

我试图渲染它,因此开发人员可以引用其中的信息。 我很抱歉,但我是XSLT的新手,并尝试将教程应用到我的场景中。

理想情况下,对于我的第一轮,我试图列出/ DCXT / ATRs / ATR节点及其属性值。我会从那里继续前进。

现在我可以使用这个XLST和chrome(通过适当的命令打开以允许本地xsl文件)是标题文本和列标题。

我上了没有值的行。

任何帮助将不胜感激。

XML格式如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="ques.xsl"?>

<DCXT attr1="xxx" attr2="yyyy" attr3="zzzz">
    <Desc>Text description</Desc>
    <dbc>
        <drv>text for drv</drv>
        <prm/>
        <hsNode>text for hsNode</hsNode>
        <ptNode>text for ptNode</ptNode>
        <sName>text for sname</sName>
        <prd/>
    </dbc>
    <DSPs attr4="aaaa" attr5="1" attr3="bbb">
        <dsp attr6="1" attr7="true" attr8="1">
            <Desc>text for desc</Desc>
        </dsp>
        <!--... multiple 'Dsp' nodes defined defined ...-->
    </DSPs>
    <ATRs>
        <ATR attr9="true" attr10="text for attr">
            <FRs>
                <FR attr11="xxx" attr12="text for attr">
                    <MPs>
                        <MP attr13="xxx" attr14="yyyy"/>
                        <!-- .... multiple MP nodes defined -->
                    </MPs>
                </FR>
                <!--... multiple FR nodes defined ...-->
            </FRs>
            <DPY>
                <RDFs>
                    <SOF attr15="xxx" attr16="0"/>
                </RDFs>
                <BFRs>
                    <sof attr17="xxx" attr18="0"/>
                </BFRs>
            </DPY>
        </ATR>
        <!-- multiple ATR nodes defined -->
    </ATRs>
    <!-- more nodes defined at this level but removing for brevity-->
</DCXT>

我的文字XSL如下

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <body>
    <h2>My Text XSL</h2>
    <table border="1">
      <tr>
        <th>attr9</th>
        <th>attr10</th>
      </tr>
      <xsl:for-each select="/DCXT">
        <tr>
          <td><xsl:value-of select="attr9"/></td>
          <td><xsl:value-of select="attr10"/></td>
        </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

1 个答案:

答案 0 :(得分:0)

您的文字说您要处理/DCXT/ATRs/ATR,所以我会将<xsl:for-each select="/DCXT">更改为<xsl:for-each select="/DCXT/ATRs/ATR">,然后在内部使用@attribute-name,即更改

     <td><xsl:value-of select="attr9"/></td>
      <td><xsl:value-of select="attr10"/></td>

     <td><xsl:value-of select="@attr9"/></td>
      <td><xsl:value-of select="@attr10"/></td>