Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 即使在<;xsl:strip-space-elements="*&引用/&燃气轮机;应用于顶部_Xml_Xslt_Xpath_Xslt 2.0 - Fatal编程技术网

Xml 即使在<;xsl:strip-space-elements="*&引用/&燃气轮机;应用于顶部

Xml 即使在<;xsl:strip-space-elements="*&引用/&燃气轮机;应用于顶部,xml,xslt,xpath,xslt-2.0,Xml,Xslt,Xpath,Xslt 2.0,我正在转换HTML-->FO。 我需要在两个房间之间保留空间 既然您知道这是可能发生的,那么在XSLT中通过在需要时添加空格来解决它 您可以在已有的模板中添加xsl:if。由于您使用的是XSLT 2.0和xsl:next match将在当前样式表中找到模板(与XSLT 1.0不同),因此您可以选择为第二个var创建单独的模板: <xsl:template match="var[preceding-sibling::node()[1][self::var]]"> <xsl:

我正在转换HTML-->FO。 我需要在两个房间之间保留空间


既然您知道这是可能发生的,那么在XSLT中通过在需要时添加空格来解决它

您可以在已有的模板中添加
xsl:if
。由于您使用的是XSLT 2.0和
xsl:next match
将在当前样式表中找到模板(与XSLT 1.0不同),因此您可以选择为第二个
var
创建单独的模板:

<xsl:template match="var[preceding-sibling::node()[1][self::var]]">
  <xsl:text> </xsl:text>
  <xsl:next-match />
</xsl:template>

既然您知道这是可能发生的,那么在XSLT中通过在需要时添加空格来解决它

您可以在已有的模板中添加
xsl:if
。由于您使用的是XSLT 2.0和
xsl:next match
将在当前样式表中找到模板(与XSLT 1.0不同),因此您可以选择为第二个
var
创建单独的模板:

<xsl:template match="var[preceding-sibling::node()[1][self::var]]">
  <xsl:text> </xsl:text>
  <xsl:next-match />
</xsl:template>


xsl:strip space/preserve space与您找到的控件相比,没有更细粒度的控件。因此,我想您需要在
span
元素和不包含
var
的元素上保留空间(例如
span[not(var)]
)您可能希望应用模板来删除不需要的文本节点中的空白。没有比您找到的
xsl:strip space/preserve space
更细粒度的控件。因此,我想您需要在
span
元素上保留空间,对于那些不包含
var
(例如
span[not(var)]
)的元素,您可能希望应用模板来删除不需要的文本节点上的空白。谢谢Tony,但是这里var之间的数据是用户的数据,可以有空间,也可以没有空间。我的问题是,只有当带状空间可能会忽略空白数据时,才保留空白,这种情况正在发生。我认为在变量之间添加空格是不可取的。如果
var
之间有非空格文本,那么谓词将为false,模板将不被使用。同样,如果在当前模板中使用了
。(如果您停止使用
xsl:strip space
,那么这个答案对您没有任何用处。)对,但如果用户没有在变量之间放置空格,我将在输出中在变量之间添加空格。你建议在这之后再加一张支票吗?对不起,是的。从你的问题来看,(对我来说)这种可能性并不明显。没有什么需要检查的了,因为XSLT无法判断原始文件中的
var
之间是否存在空格。下一个想法是在
span
中保留空间,并有一个模板,根据上下文对纯空白文本节点做正确的处理。我只是调整了代码的位置并做了一些修改(规范化空间(.)=“”),它开始工作,请检查以下代码,并分享您对此的看法。谢谢Tony,但是var之间的数据是用户的数据,可以有空间也可以没有空间。我的问题是,只有当带状空间可能会忽略空白数据时,才保留空白,这种情况正在发生。我认为在变量之间添加空格是不可取的。如果
var
之间有非空格文本,那么谓词将为false,模板将不被使用。同样,如果在当前模板中使用了
。(如果您停止使用
xsl:strip space
,那么这个答案对您没有任何用处。)对,但如果用户没有在变量之间放置空格,我将在输出中在变量之间添加空格。你建议在这之后再加一张支票吗?对不起,是的。从你的问题来看,(对我来说)这种可能性并不明显。没有什么需要检查的了,因为XSLT无法判断原始文件中的
var
之间是否存在空格。下一个想法是在
span
中保留空间,并有一个模板,根据上下文对纯空白文本节点做正确的处理。我只是调整了代码的位置并做了一些修改(规范化空间(.)=“”),它开始工作,请检查以下代码,并分享您对此的看法。 _________