XML :: Parser разбивает текстовые строки случайным образом - PullRequest
2 голосов
/ 26 августа 2011

Этот вопрос аналогичен HTML :: PullParser разбивает текстовый элемент случайным образом .В основном я использую XML :: Parser, и когда он возвращает строки, он разбивает их на несколько частей (я полагаю, чтобы ускорить процесс).Но что я могу сделать, чтобы предотвратить такое поведение?Я не могу найти что-то в документе для этого модуля или для XML::Parser::Expat.

Ответы [ 2 ]

1 голос
/ 26 августа 2011
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.
1 голос
/ 26 августа 2011

Я не знаю этого парсера в частности, но это общая черта потоковых парсеров, заключающаяся в том, что спецификация позволяет им разбивать текстовые узлы где угодно. Во многих случаях они используют это для разделения текста на границах объекта (избегая операции копирования строки), но они также могут делать это, например, на границах буфера ввода / вывода. Вам либо придется смириться с этим, самостоятельно собирая текст на уровне приложения, либо использовать высокоуровневый интерфейс для обработки XML, например XSLT или XQuery.

...