这个问题类似于HTML::PullParser splits up text element randomly。基本上我正在运行XML :: Parser,当它返回字符串时,它会将它们分成多个部分(为了加快速度,我想)。但是我该怎么做才能防止这种行为呢?我似乎无法在该模块的文档或XML::Parser::Expat
中找到任何内容。
答案 0 :(得分:1)
我特别不了解这个解析器,但它是流解析器的一个常见功能,规范允许它们在任何他们喜欢的地方拆分文本节点。在许多情况下,他们利用此功能在实体边界处分割文本(避免字符串复制操作),但它们也可以在I / O缓冲区边界处执行此操作。您要么必须使用它,在应用程序级别自己组装文本,要么使用更高级别的接口进行XML处理,例如XSLT或XQuery。
答案 1 :(得分:1)
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.