我正在尝试创建一个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>
答案 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>