【发布时间】:2011-11-04 14:30:17
【问题描述】:
这个问题类似于HTML::PullParser splits up text element randomly。基本上我正在运行 XML::Parser,当它获取字符串时,它会将它们分成多个部分(我想是为了加快速度)。但是我能做些什么来防止这种行为呢?我似乎在文档中找不到该模块或XML::Parser::Expat 的任何内容。
【问题讨论】:
标签: xml perl xml-parsing
这个问题类似于HTML::PullParser splits up text element randomly。基本上我正在运行 XML::Parser,当它获取字符串时,它会将它们分成多个部分(我想是为了加快速度)。但是我能做些什么来防止这种行为呢?我似乎在文档中找不到该模块或XML::Parser::Expat 的任何内容。
【问题讨论】:
标签: xml perl xml-parsing
When you get text,
- Append the text to a buffer.
When you get something other than text,
- If the buffer contains text,
- Process the text in the buffer.
- Empty the buffer.
- Process what you just got.
【讨论】:
XML::Parser 是否像HTML::PullParser 一样有一个switch。如果有人明确知道它没有该功能,请告诉我。
我并不特别了解这个解析器,但它是流解析器的一个共同特性,规范允许它们在任何他们喜欢的地方分割文本节点。在许多情况下,他们利用这一点在实体边界处拆分文本(避免字符串复制操作),但例如,他们也可以在 I/O 缓冲区边界处执行此操作。您要么必须忍受它,在应用程序级别自己组装文本,要么使用更高级别的 XML 处理接口,例如 XSLT 或 XQuery。
【讨论】: