XML::Parser 随机中断文本字符串

发布于 2024-12-01 11:43:57 字数 267 浏览 0 评论 0原文

这个问题类似于HTML::PullParser随机分割文本元素。基本上我正在运行 XML::Parser ,当它返回字符串时,它将它们分成多个部分(我想是为了加快速度)。但我能做些什么来防止这种行为呢?我似乎在文档中找不到该模块或 XML::Parser::Expat 的任何内容。

This question is analogous to HTML::PullParser splits up text element randomly. Basically I'm running XML::Parser and when it gets strings back, it breaks them into multiple pieces (to speed things up, I suppose). But what can I do to prevent this behavior? I can't seem to find anything in the doc for that module or for the XML::Parser::Expat.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

雅心素梦 2024-12-08 11:43:57

我不太了解这个解析器,但流解析器的一个共同特征是规范允许它们在任意位置分割文本节点。在许多情况下,他们利用这一点在实体边界处分割文本(避免字符串复制操作),但他们也可以在 I/O 缓冲区边界处执行此操作。您要么必须忍受它,在应用程序级别自行组装文本,要么使用更高级别的接口进行 XML 处理,例如 XSLT 或 XQuery。

I don't know this parser in particular, but it's a common feature of streaming parsers that the spec allows them to split text nodes wherever they like. In many cases they take advantage of this to split the text at entity boundaries (avoiding a string copy operation), but they can also do it at I/O buffer boundaries, for example. You either have to live with it, assembling the text yourself at application level, or use a higher-level interface for XML processing, such as XSLT or XQuery.

半衬遮猫 2024-12-08 11:43:57
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.
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.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文