如何在XSLT中处理HTML实体。不更改输入文件
我正在尝试使用XSLT将HTML文件转换为XML文件(使用9.0进行转换) 当我使用HTML文件配置并运行XSLT转换时,输出如何在XSLT中处理HTML实体。不更改输入文件,html,xml,xslt,Html,Xml,Xslt,我正在尝试使用XSLT将HTML文件转换为XML文件(使用9.0进行转换) 当我使用HTML文件配置并运行XSLT转换时,输出 实体“nbsp”已被引用,但未声明 我的输入html文件是: <div><span> some text</span></div> 一些文本 注意:我想知道如何仅使用XSLT处理该实体,我不想对输入文件进行任何更改。据我所知,您需要对输入文件进行更改 将更改为 或通过声明将为您执行转换的自定义
实体“nbsp”已被引用,但未声明
我的输入html文件是:
<div><span> some text</span></div>
一些文本
注意:我想知道如何仅使用XSLT处理该实体,我不想对输入文件进行任何更改。据我所知,您需要对输入文件进行更改 将
更改为 代码>或通过声明将为您执行转换的自定义doctype:
<!DOCTYPE doctypeName [
<!ENTITY nbsp " ">
]>
这是因为
不是XMLs预定义的实体之一。您可以使用XML实体创建一个XML文件,该文件定义nbsp
实体,并包含(断开的)XML片段。
例如,假设您的片段保存为一个名为“invalid.xml”的文件
然后,只需调整XSLT以适应新的文档元素(在本例中为元素
)
<div><span> some text</span></div>
<!DOCTYPE wrapper [
<!ENTITY nbsp " ">
<!ENTITY invalid-xml-document SYSTEM "./invalid.xml">
]><wrapper>
&invalid-xml-document;</wrapper>
<wrapper>
<div>
<span> some text</span>
</div>
</wrapper>