如何使用 xslt 包装匹配元素
How to wrap a matching element using xslt
我正在尝试使用 xslt 将 <fo:block-container>
包装器元素添加到任何匹配的 <table>
元素。 <fo:block-container>
需要使用与 <table>
相同的 width
属性值
一个示例来源就像
<table width="654px">
--contents
</table>
想要的结果会像
<fo:block-container width="654px">
<fo:table width="654px">
--contents
</fo:table>
</fo:block-container>
到目前为止,我看到的一些类似的帖子是在 "matching" 元素内添加新元素 - 在本例中为 <table>
,例如 。但我想使用我指定的包装器元素来包装整个匹配元素。
尝试:
<xsl:template match="table">
<fo:block-container width="{@width}">
<fo:table>
<xsl:apply-templates select="@*|node()"/>
</fo:table>
</fo:block-container>
</xsl:template>
这假设您有其他模板来处理 table 的节点 - 请参阅此处的示例:https://xsltfiddle.liberty-development.net/ncntCSh/1
我正在尝试使用 xslt 将 <fo:block-container>
包装器元素添加到任何匹配的 <table>
元素。 <fo:block-container>
需要使用与 <table>
width
属性值
一个示例来源就像
<table width="654px">
--contents
</table>
想要的结果会像
<fo:block-container width="654px">
<fo:table width="654px">
--contents
</fo:table>
</fo:block-container>
到目前为止,我看到的一些类似的帖子是在 "matching" 元素内添加新元素 - 在本例中为 <table>
,例如
尝试:
<xsl:template match="table">
<fo:block-container width="{@width}">
<fo:table>
<xsl:apply-templates select="@*|node()"/>
</fo:table>
</fo:block-container>
</xsl:template>
这假设您有其他模板来处理 table 的节点 - 请参阅此处的示例:https://xsltfiddle.liberty-development.net/ncntCSh/1