感谢该委员会对先前相关职位的帮助。
我确信道歉是关于XML的最基本的问题。我是XML的新手。
如果我从树顶部的DataContext节点中删除所有属性,那么我的XSL可以正常工作。
我将它们添加回节点的那一分钟,我的XSL停止在输出中显示值。
通过一些研究,我看到xmlns实际上是一个保留属性。我做了一些阅读,但仍然不太明白为什么会有这样的结果。
这是我的XSL:
<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>
</tr>
<xsl:for-each select="/DCXT/ATRs/ATR">
<tr>
<td><xsl:value-of select="@attr9"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
这是我的XML,其名称已更改,以保护无辜者。
特定问题出在最顶层的节点,即DCXT节点。
(为方便起见,回车符,实际的xml中不存在
<DCXT xmlns="http://www.xxxx.c0m" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" contactPerson="xxxx" ourId="xxxx" version="xxxx" dbPrefix="xxx"
xsi:schemaLocation="http://www.xxx.c0m/a/b/yyyy-dd filename_aa.bb.cc.xsd">
<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>