2012-01-25 2 views
2

«Будьте либералы в том, что вы принимаете, и консервативны в том, что вы отправляете». - Jon PostelDOMParser: Можем ли мы заставить плакать меньше о многозначных атрибутах?

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

JS код, как ...

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

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

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

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

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

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

ответ

1

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

+0

Спасибо за это понимание. Я улучшил вопрос, исходя из того, что вы сказали здесь. – Harold

Смежные вопросы