我正在尝试使用XSLT将HTML文件转换为XML文件(使用
Oxygen 9.0进行转换).
当我使用HTML文件配置和运行XSLT转换时,然后输出Oxygen
实体’nbsp’已被引用,但未被声明.
我的输入html文件是:
<div><span> some text</span></div>
注意:我想知道如何使用XSLT处理该实体,我不想对输入文件进行任何更改.
解决方法
您可以使用XML实体创建定义实体的XML文件,并包含(损坏的)XML片段.
例如,假设您的片段保存为名为“invalid.xml”的文件
<div><span> some text</span></div>
创建一个这样的XML文件:
<!DOCTYPE wrapper [ <!ENTITY nbsp " "> <!ENTITY invalid-xml-document SYSTEM "./invalid.xml"> ]><wrapper> &invalid-xml-document;</wrapper>
当该文件被解析时,它将定义实体,包含“invalid.xml”中的内容,并正确解析该实体.结果如下:
<wrapper> <div> <span> some text</span> </div> </wrapper>
然后,只需调整您的XSLT以容纳新的文档元素(在此示例中为元素< wrapper>).