大型 xhtml 中的实体引用循环
Entity Reference Loop in large xhtml
我正在生成一个大型 Xhtml 文件。用记事本++打开文件时,它说我的文件中有一个实体引用循环。
该文件大约有 20K 行,并在以下行中给出这些错误:
<p class='tbl__description'>
ärzaweqt;äöô
éîÄêÿ
Ö¥£ú
</p>
有人知道这个'XML parsing error on line ... - Detected an Entity Reference Loop'是什么意思吗?
当文件比较小的时候,好像不会弹出...只有当它包含很多这些Entity References的时候。
&name;事物是实体引用。
XML(以及带有它的 XHTML)功能过于全面,通常对您来说并不合适。
如“Is the Billion Laughs Attack supposed to be working in C#?”所示,您可以定义自己的实体并在其他实体定义中重用它们。我猜 XML 解析器会尝试检测这些漏洞并在解析实体时检查其内存使用情况。你的例子里有很多,但我没有看到循环。
看起来 notepad++ 使用了 TinyXml,也许您可以找出出现此错误的位置。
旁注:请参阅 Tom Eastman - Serialization formats are not toys - PyCon 2015 以了解更多序列化格式的功能示例,您可能会搬起石头砸自己的脚。
可能您的文档是以 ansi 编码保存的。您必须将其转换为 utf-8 以避免此错误。命名实体将根据您的实体定义解析为 utf-8 字符。某些 utf-8 字符必须改回实体才能以 ansi 编码保存。这就是禁循环!
我正在生成一个大型 Xhtml 文件。用记事本++打开文件时,它说我的文件中有一个实体引用循环。 该文件大约有 20K 行,并在以下行中给出这些错误:
<p class='tbl__description'>
ärzaweqt;äöô
éîÄêÿ
Ö¥£ú
</p>
有人知道这个'XML parsing error on line ... - Detected an Entity Reference Loop'是什么意思吗? 当文件比较小的时候,好像不会弹出...只有当它包含很多这些Entity References的时候。
&name;事物是实体引用。
XML(以及带有它的 XHTML)功能过于全面,通常对您来说并不合适。
如“Is the Billion Laughs Attack supposed to be working in C#?”所示,您可以定义自己的实体并在其他实体定义中重用它们。我猜 XML 解析器会尝试检测这些漏洞并在解析实体时检查其内存使用情况。你的例子里有很多,但我没有看到循环。
看起来 notepad++ 使用了 TinyXml,也许您可以找出出现此错误的位置。
旁注:请参阅 Tom Eastman - Serialization formats are not toys - PyCon 2015 以了解更多序列化格式的功能示例,您可能会搬起石头砸自己的脚。
可能您的文档是以 ansi 编码保存的。您必须将其转换为 utf-8 以避免此错误。命名实体将根据您的实体定义解析为 utf-8 字符。某些 utf-8 字符必须改回实体才能以 ansi 编码保存。这就是禁循环!