Проблема дублированного атрибута Xstream - PullRequest
0 голосов
/ 04 октября 2010

Я играл с XML-анализом XStream, и у меня возникла небольшая проблема. В файле, который мне нужно проанализировать, у меня есть узел с несколькими произвольными атрибутами с тем же именем. Узел - это футбольная команда, а атрибутами являются имена каждого игрока.

<team home="Arsenal">
  <squad player="Manuel Almunia Rivero" player="Abou Diaby" player="Bacary Sagna" ... player="Robin van Persie"/>
  <subs player="Carlos Vela" player="Theo Walcott"/>
</team>

Моя проблема в том, что когда я пытаюсь демаршировать этот файл, у меня возникает проблема с дублирующимся атрибутом. Все, что я хочу сделать, это загрузить эти строки обратно в список, чтобы я мог поддерживать группу людей в команде. Это не важно для заказа и т. Д. Может ли кто-нибудь указать мне правильное направление итерации каждого атрибута, даже если они имеют одинаковые имена? Спасибо Chris

1 Ответ

1 голос
/ 04 октября 2010

У вас есть два варианта:

  1. Отправьте сообщение об ошибке тому, кто его создал, с просьбой исправить ошибку, если у них есть несколько атрибутов с одинаковым именем (приведенный вами пример неправильно сформированный XML, поэтому процессор XML не сможет его проанализировать).

  2. Напишите что-то, что работает с потоком как текстовый поток и создает некоторый настоящий XML, такой как, например, <squad><player>Manuel Almunia Rivero</player><player>Abou Diaby</player>....

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

...