2010-12-11 5 views
1

Я не уверен, что смогу это сделать, но я бы хотел. Я читаю в XML-файле, и на некоторых узлах есть большое количество атрибутов, которые я сохраняю в переменной внутри объекта. В настоящее время я просматриваю узлы, получаю имена атрибутов, а затем просматриваю очень большие значения if/then/elses, чтобы иметь возможность хранить их в правильной переменной объекта. Все это прекрасно.Динамическая адресация переменных классов

Что бы я хотел сделать, это сделать это немного более динамично, иметь механизм сопоставления, который отображает имя атрибута в имя переменной в объекте.
Так, например, если у меня есть узел, я мог бы сопоставить данные, чтобы сказать: object.city и object.addr в моем объекте, не имея жесткого кодирования if/then для каждого захваченного мной атрибута. У меня есть несколько узлов/объектов, для которых я это делаю, и хотя это часто не меняется, я думаю, что было бы проще отобразить его, как я описал.

Возможно ли что-то подобное в Java?

много спасибо.

ответ

1

Существует много утилит отображения POJO-XML. XML-компоненты Apache и JAXB от Sun являются двумя распространенными.

Вот XMLBeans учебник: http://xmlbeans.apache.org/documentation/tutorial_getstarted.html

+0

Примечание: JAXB на самом деле является стандартом (JSR-222) с несколькими реализациями: Metro JAXB (эталонная реализация), EclipseLink JAXB (MOXy), Apache JaxMe и т. Д. –

2

Да, вы можете получить доступ к полям и методам класса с помощью Reflection API. Но если ваша цель - только прочитать XML-файл, не изобретайте велосипед - просто используйте существующую библиотеку, такую ​​как JAXB.

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