我将html转换为XML。我正在努力清除这些空间。由于我使用了normalize()函数,空格被移除,但文本和元素之间的单个空格也被移除,例如农业研究的和
限制根据标准商业实践
。下面我定义了我的输入
<html>
<div class="Sec">
<p class="stitle">The need of <strong> Agricultural </strong> studies </p>
<div class="subs1"> (a) term for leases </div>
<div class="subs1"> (b) be limited <i> according standard commercial </i> practices with maximum </div>
<table class="table"><tr><td><p class="tablepara"> (1) General Lease </p></td>
<td><p class="tablepara"> 49 years </p></td></tr>
<tr><td><p class="tablepara"> General Permit </p></td><td/></tr>
<tr><td><p class="tablepara"> Forest<sup> 1 </sup> Management Agreement </p></td>
<td/></tr><tr><td><p class="tablepara"> (2) Agricultural Lease </p></td></tr></table>
</div>
</html>
我尝试使用此xslt
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:output indent="no" omit-xml-declaration="yes" method="html"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="normalize-space()"/>
</xsl:template>
</xsl:stylesheet>
我得到的结果是
<html>
<div class="Sec">
<p class="stitle">The need of<strong>Agricultural</strong>studies</p>
<div class="subs1">(a) term for leases</div>
<div class="subs1">(b) be limited<i>according standard commercial</i>practices with maximum</div>
<table class="table"><tr><td><p class="tablepara">(1) General Lease</p></td><td><p class="tablepara">49 years</p></td></tr>
<tr><td><p class="tablepara">General Permit</p></td><td></td></tr><tr><td><p class="tablepara">Forest<sup>1</sup>Management Agreement</p></td><td></td></tr>
<tr><td><p class="tablepara">(2) Agricultural Lease</p></td></tr></table></div>
</html>
我发现它还删除了文本附近的空格,即
元素和
元素周围的空格
of<strong>Agricultural</strong>studies, limited<i>according standard commercial</i>practices
我需要保留空间
of <strong>Agricultural</strong> studies, limited <i>according standard commercial</i> practices
我的预期输出是
<html>
<div class="Sec">
<p class="stitle">The need of <strong>Agricultural</strong> studies</p>
<div class="subs1">(a) term for leases</div>
<div class="subs1">(b) be limited <i>according standard commercial</i> practices with maximum</div>
<table class="table"><tr><td><p class="tablepara">(1) General Lease</p></td><td><p class="tablepara">49 years</p></td></tr>
<tr><td><p class="tablepara">General Permit</p></td><td></td></tr><tr><td><p class="tablepara">Forest<sup>1</sup> Management Agreement</p></td><td></td></tr>
<tr><td><p class="tablepara">(2) Agricultural Lease</p></td></tr></table></div>
</html>
请帮助删除一般的空格
这似乎相当有效:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:output indent="yes" omit-xml-declaration="yes" method="html"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()[preceding-sibling::* and following-sibling::*]">
<xsl:text> </xsl:text>
<xsl:value-of select="normalize-space()" />
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="text()[preceding-sibling::*]">
<xsl:text> </xsl:text>
<xsl:value-of select="normalize-space()" />
</xsl:template>
<xsl:template match="text()[following-sibling::*]">
<xsl:value-of select="normalize-space()" />
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="normalize-space()" />
</xsl:template>
</xsl:stylesheet>
输出(按照您在问题中所做的包装,而不是按照XSLT处理器创建的包装):
<html>
<div class="Sec"><p class="stitle">The need of <strong>Agricultural</strong> studies</p>
<div class="subs1">(a) term for leases</div>
<div class="subs1">(b) be limited <i>according standard commercial</i> practices with maximum</div>
<table class="table"><tr><td><p class="tablepara">(1) General Lease</p></td><td><p class="tablepara">49 years</p></td></tr>
<tr><td><p class="tablepara">General Permit</p></td><td></td></tr>
<tr><td><p class="tablepara">Forest <sup>1</sup> Management Agreement</p></td><td></td></tr><tr><td><p class="tablepara">(2) Agricultural Lease</p></td></tr></table></div>
</html>
问题内容: 我在我的系统中将电话号码存储为VARCHAR2,以允许用户选择在电话号码前输入“ +”字符。 我的regexp完美地做到了这一点,但是当将数字存储在数据库中时,我想去除用户可能输入的所有空格。 我的正则表达式允许以下格式 我知道我可以通过不让用户在数字中添加空格来解决问题,但是我个人经验表明,由于客户端的某些愚蠢格式而导致验证错误令人沮丧。我曾尝试在INSERT / UPDATE触发器
问题内容: 如何在Django中charField的末尾去除空格(trim)? 这是我的模型,如您所见,我已经尝试过使用干净的方法,但是这些方法永远不会运行。 我也尝试过这样做,但是这些也不起作用。 有没有办法强制为我自动修剪charField? 谢谢。 编辑:将代码更新为我的最新版本。我不确定我在做什么错,因为它仍然没有剥离空白(修剪)名称字段。 问题答案: 必须调用模型清洗(这不是自动的),因
问题内容: 在SO 904928问题上(Python strftime-日期前无0?),Ryan回答: 实际上,我遇到了同样的问题,并且我意识到,如果在%和字母之间添加连字符,则可以删除前导零。 例如,%Y /%-m /%-d。 我遇到了同样的问题,但这是一个很好的解决方案,但是为什么会这样呢? 我找不到任何有关的文档?-> python datetime docs / python字符串操作 看
问题内容: 我很难尝试将.strip与以下代码行结合使用。 谢谢您的帮助。 问题答案: 您可以使用strip()删除尾随和前导空格。 注意:内部空间被保留
我有一个pdf包含一些数据,后面是一些空白。我不知道数据有多大,但我想删掉数据后面的空格 有没有一种方法可以剪裁/修剪新文档中每一页的空格?此PDF包含矢量图形。 我使用iTextPDF,但可以切换到任何Java库(mavenized,Apache许可优先)
我正在使用JasperReports 4.5.0生成报告。我正在生成不同格式的报告,如html、csv、pdf、xls、doc。在我的一份报告中,我有6列,分别是col1、col2、col3、col4、col5、col6。但根据情况,我想把col4藏起来。为此,我使用了printWhenExpression。现在它根据条件隐藏列,但问题是该列占用的空间保持不变。 我怎样才能去掉col3和col5之