使用xslt替换为xml中的空格

时间:2015-11-05 14:08:38

标签: xml xslt

输入xml编码:

 <Table ss:ExpandedColumnCount="21" ss:ExpandedRowCount="55" x:FullColumns="1"
 x:FullRows="1" ss:DefaultColumnWidth="53.0" ss:DefaultRowHeight="14.0">
<Row>
<Cell><Data ss:Type="String">Report Date:&nbsp;02-11-2015 </Data></Cell>
</Row>
<Row>
<Cell ss:StyleID="s62"><Data ss:Type="String">File ID</Data><NamedCell
  ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s59"><Data ss:Type="String">Automation</Data><NamedCell
  ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row>
<Cell ss:StyleID="s63"><Data ss:Type="String">&nbsp; </Data><NamedCell
  ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s73"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
</Table>

xsl编码中的头部声明:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#xa0;">
]>

我们在输入xsl中使用上面的标头声明来替换具有空格的非中断空格(nbsp)。但它没有工作,它一次又一次显示下面的错误。 XML错误:引用了实体“nbsp”,但未声明。

2 个答案:

答案 0 :(得分:1)

如果您的XML输入引用了实体(与&nbsp;一样),那么您需要确保XML输入声明实体。

答案 1 :(得分:0)

您不需要XSLT,您可以轻松地在输入中查找/替换文本,将&nbsp;替换为&#160;

如上所述,您的输入XML无效,它与XSL无关 - &nbsp;是HTML实体,而不是XML实体,因此任何使用它的XML文档都必须包含实体声明 - 这意味着源文档和使用它的任何xsl样式表。