Анализ строкового представления XML

#java #xml-parsing

#java #xml-синтаксический анализ

Вопрос:

Из строки, подобной

 <TestData Identifier="Test" requiredAttribute="Present"></TestData> <TestData Identifier="Test1" requiredAttribute="Present1"></TestData> <TestData Identifier="Test2" requiredAttribute="Present2"></TestData> <TestData Identifier="Test3" requiredAttribute="Present3"></TestData>
  

каков наилучший способ получить значения атрибутов RequiredAttribute, т.е. (Present, Present1, Present2 …)

Комментарии:

1. Это, вероятно, самый распространенный вопрос на этом сайте. Ни один из этих связанных вопросов ------> не решает вашу проблему?

2. Это вера ваших отцов, которая не позволяет вам ввести «java parse xml example» в Google?

Ответ №1:

Вы можете заглянуть в раздел JAXB unmarshalling. Ознакомьтесь с этой страницей для получения более подробной информации, она должна указывать на то, что вам нужно

http://jaxb.java.net/tutorial/section_3_1-Unmarshalling-and-Using-the-Data.html#Unmarshalling и использование данных

Ответ №2:

Для базового синтаксического анализа XML, подобного этому, я нашел NanoXML @ http://nanoxml.cyberelf.be / быть примерно самым простым и легковесным.

Работа с XML в Java приведет вас к долгому пути к боли, если вы начнете использовать все другие библиотеки.

Ответ №3:

Это не XML — но вы могли бы сделать это с помощью регулярного выражения или путем преобразования его в XML и синтаксического анализа. Последнее, вероятно, дороже. Это зависит от того, каковы фактические тестовые данные и ваши требования к ним.

Комментарии:

1. можете ли вы предоставить мне один пример того, как добиться этого с помощью регулярных выражений?

2. Это зависит. Какие данные вы пытаетесь захватить? Только атрибут?

3. Если все, что вы делаете, это ищете атрибут, вы должны сопоставить его с группой «RequiredAttribute=»([^»)»» и фиксируем совпадения. Это ужасно некрасиво и, вероятно, недостаточно, но я не знаю, чего вы пытаетесь достичь или с какими данными.

4. Синтаксический анализ xml и тому подобное — решаемая проблема. Не предлагайте изобретать велосипед.