DOMParser: Можем ли мы заставить его меньше плакать о многократно определенных атрибутах? - PullRequest
2 голосов
/ 25 января 2012

«Будьте либеральны в том, что вы принимаете, и консервативны в том, что вы посылаете». - Джон Постел

Прямо сейчас я использую браузер Chrome, но я испытывал то же самое в прошлом с Firefox.

код JS как ...

(new DOMParser).parseFromString("<doc attr=\"foo\" attr=\"foo\" />","text/xml")

возвращает страницу pukey parsererror вместо чего-либо полезного.

В настоящее время я поглощаю то, что внешне кажется XML-документами, которые на самом деле имеют эту проблему. То есть некоторые элементы имеют один и тот же атрибут дважды.

В соответствии с вышеупомянутым принципом, я бы хотел, чтобы моя программа (построенная на объекте браузера DOMParser) работала лучше, чем просто подняла руки перед лицом подобных вводных данных.

Мне все равно, берется ли первое, последнее или иное значение для атрибута.

Вопрос: Есть ли способ сделать парсер менее строгим?

1 Ответ

1 голос
/ 25 января 2012

Философия XML всегда была противоположностью закона Постеля: если вы либеральны в том, что вы принимаете, это будет побуждать создателей контента к небрежности в том, что они создают.Если вы строго придерживаетесь того, что принимаете, создатели контента будут вынуждены быть строгими в том, что они производят, иначе то, что они производят, будет бесполезным.Исправьте процесс, который сгенерировал этот не XML-файл.(И никогда не делайте ошибку, ссылаясь на такой объект как «документ XML» - если бы это был XML, у вас не было бы проблемы.)

...