LINUX.ORG.RU

XML и спецсимволы


0

0

Новые грабли: почему-то если у меня xml в котором есть конструкции с &gt и &lt, то SAX не пропускает и не отдает их в методе charecter, а считает полноценными < и >.

★★★★★

Что-то мне кажется, что он так и должен поступать. То есть, парсер преобразует эти символы, ведь если открыть xml скажем в браузере, то эти символы будут или нет? (Сейчас лень проверять ;-) )

anonymous_incognito ★★★★★
()

The replacement text may contain both character data and (except for parameter entities) markup, which must be recognized in the usual way, except that the replacement text of entities used to escape markup delimiters (the entities amp, lt, gt, apos, quot) is always treated as data. (The string "AT&amp;T;" expands to "AT&T;" and the remaining ampersand is not recognized as an entity-reference delimiter.)

...

Entity and character references can both be used to escape the left angle bracket, ampersand, and other delimiters. A set of general entities (amp, lt, gt, apos, quot) is specified for this purpose. Numeric character references may also be used; they are expanded immediately when recognized and must be treated as character data, so the numeric character references "& #60;" and "& #38;" may be used to escape < and & when they occur in character data.

alex_custov ★★★★★
()

а разве не должно так быть?

bugmaker ★★★★☆
()
Ответ на: комментарий от anonymous_incognito

Они специально превращены в &gt;, чтобы отличать содержимое тэгов от самих тэгов и не путать XML с htmlом, который в нем как данные. Я все победил, надо было в character не сбрасывать буфер данных, а накаливать, а сбрасывать его в start'е.

Shaman007 ★★★★★
() автор топика
Ответ на: комментарий от Shaman007

Подозреваю, что надо писать &amp;gt;. Где-то я с подобным сталкивался.

friday ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.