在XSLT中使用处理指令

在XSLT中使用处理指令,xslt,Xslt,我想在XSLT中使用处理指令 逻辑:如果存在,则应添加 输入: <table-wrap id="tab_A.1" position="anchor"> <?Table Sideturn?> <label>Table A.1</label> <caption/> <table> <tbody/> </table> </table-wrap 表A.1 您可以试试这个:

我想在XSLT中使用处理指令

逻辑:如果存在
,则应添加

输入:

<table-wrap id="tab_A.1" position="anchor">
  <?Table Sideturn?>
  <label>Table A.1</label>
  <caption/>
  <table>
    <tbody/>
  </table>
</table-wrap

表A.1

您可以试试这个:

<xsl:when test="preceding-sibling::processing-instruction('Table Sideturn')">

而不是

<xsl:when test="preceding-sibling::processing-instruction('Table')">


因为元素名称中不允许有空格。

您可以尝试以下方法:

<xsl:when test="preceding-sibling::processing-instruction('Table Sideturn')">

而不是

<xsl:when test="preceding-sibling::processing-instruction('Table')">


因为元素名称中不允许有空格。

处理指令

<?Table Sideturn?>

如注释中所述,我在这里使用的是
normalize-space()
,因为一些处理器可能会将该值视为在开始时有一个空格。

处理指令

<?Table Sideturn?>

如注释中所述,我在这里使用的是
normalize-space()
,因为一些处理器可能会将该值视为在开始时有一个空格。

对该值使用normalize-space()可能也是一个好主意。IIRC,对于值中的空格是否被删除,处理器之间存在差异。@MichaelKay,谢谢,将添加这一点。对值使用normalize-space()可能也是一个好主意。IIRC,对于值中的空格是否被删除,处理器之间存在差异。@MichaelKay,谢谢,我会加上它。