我收回了同事的程序
在我的XML中,我搜索匹配XSL仅当从附件开始的段落不在CELL父级中时
例如:
<BODY>
.............
<CELL>
<PARAGRAPH align="centre">32</PARAGRAPH>
<PARAGRAPH align="centre">annexe V</PARAGRAPH>
</CELL>
.............
<PARAGRAPH align="centre">annexe C</PARAGRAPH>
.............
</BODY>
实际的XSL是(&amp; start-annexe;只是当元素PARAGRAPH以annexe开头时匹配的函数):
<xsl:template match="PARAGRAPH[(@align='center' or @align='left') and &start-annexe;]">
<Annexe>
<xsl:apply-templates select="@*|node()"/>
</Annexe>
</xsl:template>
实际结果是:
<BODY>
.............
<CELL>
<PARAGRAPH align="centre">32</PARAGRAPH>
<ANNEXE>annexe V</ANNEXE>
</CELL>
.............
<ANNEXE>annexe C</ANNEXE>
.............
</BODY>
我想:
<BODY>
.............
<CELL>
<PARAGRAPH align="centre">32</PARAGRAPH>
<PARAGRAPH align="centre">annexe V</PARAGRAPH>
</CELL>
.............
<ANNEXE>annexe C</ANNEXE>
.............
</BODY>
我尝试了几种可能性,但我没有成功......
例如
<xsl:template match="PARAGRAPH[(@align='center' or @align='left') and &start-annexe; and not(parent::CELL)]">
你可以帮帮我吗?
感谢
答案 0 :(得分:1)
我相信您正在寻找starts-with
功能
<xsl:template match="PARAGRAPH[(@align='center' or @align='left')
and starts-with(., 'annexe')
and not(parent::CELL)]">