XSL剥离段落/换行符(C#)

时间:2013-11-22 04:56:01

标签: c# html xslt whitespace paragraph

我有以下代码删除HTML中的段落标记/空格。有办法解决吗?

裁减XSL:

<div style="FONT-WEIGHT: normal" align="left">
 <span class="xdExpressionBox xdDataBindingUI" title="" tabIndex="-1" xd:xctname="ExpressionBox" xd:CtrlId="CTRL35" xd:disableEditing="yes" style="WIDTH: 100%; FONT-SIZE: 11.5pt">
    <xsl:value-of select="my:IncidentSummaryDetails/my:incidentDetails/my:incidentDetailsHeader"/>
 </span>

缩减XML:

<my:incidentDetailsHeader>
 <html xmlns="http://www.w3.org/1999/xhtml" xml:space="preserve">
  <p style="text-align:justify;">​Bacon ipsum dolor sit amet laboris fugiat shankle aute consectetur leberkas. Tempor irure aliqua, pastrami venison sint turkey.</p>
  <p style="text-align:justify;"><span lang="EN-US" style="text-decoration:underline;"><strong>SPACE</strong><strong></strong></span></p>
  <p style="text-align:justify;">Cow dolore turkey voluptate cupidatat </p>
 </html>
</my:incidentDetailsHeader>

HTML结果(我圈出了预期的空格 - 上面的简化XML只显示了一个我知道的“SPACE”实例):

enter image description here

我使用XslCompiledTransform类来执行XSL转换,结果会从上面删除<p>标记。我想保留p标签,或者插入两个<br />标签。

正如您所看到的设置为xml:space="preserve",并且在XSL中的任何位置都没有设置strip-spacenormalize-space

1 个答案:

答案 0 :(得分:0)

我必须在这篇文章中使用<xsl:copy-of>How do I preserve markup tags?

顺便说一句:这是针对InfoPath的,因此我不必使用计算值,而只需使用只读的富文本框,它可以自行复制。