我正在解析一些 DocBook xml 以转换为我们的内部格式。
在处理 tgroup 元素时,如下所示:
<tgroup cols="4">
<colspec colwidth="1*" />
<colspec colwidth="1*" />
<colspec colwidth="1*" />
<colspec colwidth="1*" />
如果给定 tgroup 的 col 属性值与子 colspec 元素的数量完全匹配,并且该 colspec 有 colwidth 属性,我想在结果树的 colspec 元素中使用 colwidth 值。
我的检查和代码如下:
<xsl:when test="(@cols = count(./colspec)) and (./colspec[@colwidth][$number])">
<colspec>
<xsl:attribute name="colnum">
<xsl:value-of select="$number"/>
</xsl:attribute>
<xsl:attribute name="colname">
<xsl:value-of select="$number"/>
</xsl:attribute>
<xsl:attribute name="colwidth">
<xsl:value-of select="./colspec[@colwidth][$number]"/>
</xsl:attribute>
</colspec>
($number 是当前正在处理的 colspec 的编号。)我没有得到 1* 的 colwidth,而是得到
coldwidth=""
我需要指定我想要属性值吗?
我总是对 xpath 表达式感到困惑,非常感谢任何人提供的任何帮助!
谢谢,
拉斯