Игнорирование пробелов, возврата каретки и символов табуляции между элементами при разборе файла XML - PullRequest
1 голос
/ 01 марта 2011

Я хочу проанализировать файл XML с помощью SAX Xerces C ++, игнорируя при этом любые пробелы, символы возврата каретки и табуляции, которые НЕ находятся в атрибутах элемента или в элементах начала и конца.Я хочу игнорировать пробелы, возврат каретки и табуляцию между тегами.

Например, в следующем XML-файле:

<tag1 attr1="val 1"><tag2>my text here</tag2>

[много пробелов здесь] </tag1>

Я хочу сохранить пробелы в строках 'val 1', 'мой текст здесь', но игнорируйте возврат каретки и множество пробельных символов между окончанием </tag2> и окончанием </tag1>.

Я попытался использовать логический флаг 'WithinElement', установленный в trueв startElement() и установлен в false в endElement() методах, но это не мешает мне игнорировать пробельные символы, например, между </tag2> и </tag1>.

Должно ли это быть сделано методом characters()?и как это сделать, поскольку, кажется, нет способа узнать, где мы находимся именно тогда, когда вызывается метод characters()?

1 Ответ

0 голосов
/ 28 декабря 2011

Вы можете попросить парсер проверить XML-файл, а затем вы получите все игнорируемые пробелы с помощью метода ignorableWhitespace и "хорошие" пробелы с помощью characters.

...