如何在XSLT中处理HTML实体.无需更改输入文件

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

当我使用HTML文件配置和运行XSLT转换时,然后输出Oxygen

实体’nbsp’已被引用,但未被声明.

我的输入html文件是:

<div><span>&nbsp;some text</span></div>

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

解决方法

您可以使用XML实体创建定义实体的XML文件,并包含(损坏的)XML片段.

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

<div><span>&nbsp;some text</span></div>

创建一个这样的XML文件

<!DOCTYPE wrapper [
   <!ENTITY nbsp "&#160;">
   <!ENTITY invalid-xml-document SYstem "./invalid.xml">
]><wrapper>
&invalid-xml-document;</wrapper>

当该文件被解析时,它将定义实体,包含“invalid.xml”中的内容,并正确解析该实体.结果如下:

<wrapper>
  <div>
    <span> some text</span> 
  </div>
</wrapper>

然后,只需调整您的XSLT以容纳新的文档元素(在此示例中为元素< wrapper>).

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些