输入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: 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"> </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 " ">
]>
我们在输入xsl中使用上面的头声明来替换具有空格的非中断空格(nbsp) . 但它没有工作,它一次又一次显示下面的错误 . XML Error: The entity "nbsp" was referenced, but not declared.
2 回答
如果您的XML输入引用实体(与
一样),那么您需要确保XML输入声明实体 .你不需要XSLT,你可以轻松地在输入上找到/替换文本,用
 
替换
.如上所述,您的输入XML与XSL无关 -
是一个HTML实体,而不是XML实体,因此任何使用它的XML文档都必须包含实体声明 - 这意味着源文档和任何xsl使用它的样式表 .