Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在XSLT中处理HTML实体。不更改输入文件_Html_Xml_Xslt - Fatal编程技术网

如何在XSLT中处理HTML实体。不更改输入文件

如何在XSLT中处理HTML实体。不更改输入文件,html,xml,xslt,Html,Xml,Xslt,我正在尝试使用XSLT将HTML文件转换为XML文件(使用9.0进行转换) 当我使用HTML文件配置并运行XSLT转换时,输出 实体“nbsp”已被引用,但未声明 我的输入html文件是: <div><span>&nbsp;some text</span></div> 一些文本 注意:我想知道如何仅使用XSLT处理该实体,我不想对输入文件进行任何更改。据我所知,您需要对输入文件进行更改 将更改为 或通过声明将为您执行转换的自定义

我正在尝试使用XSLT将HTML文件转换为XML文件(使用9.0进行转换)

当我使用HTML文件配置并运行XSLT转换时,输出

实体“nbsp”已被引用,但未声明

我的输入html文件是:

<div><span>&nbsp;some text</span></div>
一些文本

注意:我想知道如何仅使用XSLT处理该实体,我不想对输入文件进行任何更改。

据我所知,您需要对输入文件进行更改

更改为
 或通过声明将为您执行转换的自定义doctype:

<!DOCTYPE doctypeName [
   <!ENTITY nbsp "&#160;">
]> 


这是因为
不是XMLs预定义的实体之一。

您可以使用XML实体创建一个XML文件,该文件定义
nbsp
实体,并包含(断开的)XML片段。

例如,假设您的片段保存为一个名为“invalid.xml”的文件

然后,只需调整XSLT以适应新的文档元素(在本例中为元素

<div><span>&nbsp;some text</span></div>
<!DOCTYPE wrapper [
   <!ENTITY nbsp "&#160;">
   <!ENTITY invalid-xml-document SYSTEM "./invalid.xml">
]><wrapper>
&invalid-xml-document;</wrapper>
<wrapper>
  <div>
    <span> some text</span> 
  </div>
</wrapper>