xslt - 如何在xslt中的元素之间找到一个空格
问题描述
我想删除第 4 段中的额外空格。它是由我编写的 XSLT 引入的。
下面给出了 XML 和 XSLT 输出。
<Chapter>
<para>A <emphasis>B</emphasis> <emphasis>C</emphasis> <emphasis>N</emphasis> D</para>
<para>A <emphasis>B</emphasis> <emphasis>C</emphasis> <emphasis>N</emphasis> D</para>
<para>A <emphasis>B</emphasis> <emphasis>C</emphasis> <emphasis>N</emphasis> D</para>
<para>A <emphasis>B</emphasis><emphasis>C</emphasis> <emphasis>N</emphasis> D</para>
</Chapter>
给定下面的 XSLT 代码:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="para" />
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="para">
<p><xsl:apply-templates/></p>
</xsl:template>
<xsl:template match="emphasis">
<b><xsl:apply-templates/></b>
<xsl:if test="self::emphasis/following::text()[starts-with(., ' ')] and following-sibling::node()[1][self::emphasis]"><xsl:text> </xsl:text></xsl:if>
</xsl:template>
</xsl:stylesheet>
预期输出:
<p>A <b>B</b> <b>C</b> <b>N</b> D</p>
<p>A <b>B</b> <b>C</b> <b>N</b> D</p>
<p>A <b>B</b> <b>C</b> <b>N</b> D</p>
<p>A <b>B</b><b>C</b> <b>N</b> D</p>
我知道问题出在 XSLT 中给出的条形空间上,这就是为什么在这些元素之间删除了空格。我试图克服这些元素之间的空间和给定空间。尽管如此,在B之后的第 4 段中添加了一个额外的空格。任何人都知道如何删除不需要的空间或现有的任何解决方案以在这些元素之间留出空间。
解决方案
推荐阅读
- php - 如果选中复选框,则显示消息 hello 否则显示 hi
- python - 确定剪刀石头布的获胜者 [python]
- python - 使用 group by 绘制条形图
- node.js - 运行 junkins 作业时 no_proxy 节点配置不起作用
- amazon-cloudformation - 像云形成一样部署 serverless.yml
- python - md5sum 不匹配 python 生成的 md5
- python - 通过电子邮件发送数据帧
- c++ - 创建 shared_ptr 然后将其添加到类成员向量并返回的函数
- javascript - Angular 8/9 如何动态禁用也动态创建的按钮?
- python - 在python中组合txt文件中的行