powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как в Java вывести в консоль значения атрибутов из файла XML?
11 сообщений из 11, страница 1 из 1
Как в Java вывести в консоль значения атрибутов из файла XML?
    #39227112
Hehabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как в Java вывести в консоль значения атрибутов из файла XML?
Чтобы получались такие строки вывода:
Ivanov 12 A red
Petrov 20 B blue
---------------------------
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    <?xml version="1.0"?>
    <Data>
      <Title>
     
        <Obj name="Ivanov" id="12" raz="A">
            <Value><![CDATA[red]]></Value>
        </Obj>
     
     
        <Obj name="Petrov" id="20" raz="B">
            <Value><![CDATA[blue]]></Value>
        </Obj>
     
        <!-- Ещё 18 Obj -->
     
      </Title>
    </Data>
...
Рейтинг: 0 / 0
Как в Java вывести в консоль значения атрибутов из файла XML?
    #39227162
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hehabr,

Например, воспользоваться XML-парсером
...
Рейтинг: 0 / 0
Как в Java вывести в консоль значения атрибутов из файла XML?
    #39227383
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XPath
...
Рейтинг: 0 / 0
Как в Java вывести в консоль значения атрибутов из файла XML?
    #39227410
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В рамках пятницы предлагаю конкурс на оригинальность. Давайте решим задачу
через grep например.
...
Рейтинг: 0 / 0
Как в Java вывести в консоль значения атрибутов из файла XML?
    #39227422
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВ рамках пятницы предлагаю конкурс на оригинальность. Давайте решим задачу
через grep например.

Чпуньк-чпуньк и в продашн!

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
    public static void main(String[] args) {
        CharSequence xml = "<?xml version=\"1.0\"?>\n" +
                "    <Data>\n" +
                "      <Title>\n" +
                "     \n" +
                "        <Obj name=\"Ivanov\" id=\"12\" raz=\"A\">\n" +
                "            <Value><![CDATA[red]]></Value>\n" +
                "        </Obj>\n" +
                "     \n" +
                "     \n" +
                "        <Obj name=\"Petrov\" id=\"20\" raz=\"B\">\n" +
                "            <Value><![CDATA[blue]]></Value>\n" +
                "        </Obj>\n" +
                "     \n" +
                "        <!-- Ещё 18 Obj -->\n" +
                "     \n" +
                "      </Title>\n" +
                "    </Data>"
                ;
        Matcher matcher = Pattern.compile("(?<=\")[\\w\\d]+(?=\")|(?<=\\[)[\\w\\d]+(?=\\])").matcher(xml);
        int i = 0;
        while (matcher.find()){
            System.out.print(matcher.group());
            if(i++ % 4 == 3) {
                System.out.println();
            }else {
                System.out.print(" ");
            }
        }
    }
...
Рейтинг: 0 / 0
Как в Java вывести в консоль значения атрибутов из файла XML?
    #39227428
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
        int i = 0;
        for (StringTokenizer stringTokenizer = new StringTokenizer(xml, "\"[]"); stringTokenizer.hasMoreTokens(); ) {
            String s = stringTokenizer.nextToken();
            if(!s.contains(".") && !s.contains(" ") && !"CDATA".equals(s)) {
                System.out.print(s);
                if(i++ % 4 == 3){
                    System.out.println();
                } else {
                    System.out.print(" ");
                }
            }
        }
...
Рейтинг: 0 / 0
Как в Java вывести в консоль значения атрибутов из файла XML?
    #39227438
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Крутяк!

Я вот думаю что еще string-replacement-ом можно удалить все XML-разметки и заменить на пробелы.
И останется какраз то что автору нужно.
...
Рейтинг: 0 / 0
Как в Java вывести в консоль значения атрибутов из файла XML?
    #39227693
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
String xml = "...";
System.out.println(
    org.json.XML.toJSONObject(xml)
        .getJSONObject("Data")
        .getJSONObject("Title")
        .getJSONArray("Obj")
        .toString(4)
);

Вывод:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
[
    {
        "name": "Ivanov",
        "Value": "red",
        "raz": "A",
        "id": 12
    },
    {
        "name": "Petrov",
        "Value": "blue",
        "raz": "B",
        "id": 20
    }
]

Зависимость:
Код: sql
1.
2.
3.
4.
5.
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20160212</version>
</dependency>
...
Рейтинг: 0 / 0
Как в Java вывести в консоль значения атрибутов из файла XML?
    #39227704
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
String xml="<?xml version=\"1.0\"?><Data><Title><Obj name=\"Ivanov\" id=\"12\" raz=\"A\">"
            	+ "<Value><![CDATA[red]]></Value> </Obj><Obj name=\"Petrov\" id=\"20\" raz=\"B\">"
            	+ "<Value><![CDATA[blue]]></Value></Obj></Title></Data>";
String xsl="<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"2.0\">"
      		+ "<xsl:output method=\"text\"/>"
       		+ "<xsl:template match=\"/Data/Title/Obj\">"
       		+ "<xsl:value-of select=\"concat(@name,' ',@id,' ',@raz,' ',Value/text())\"/><xsl:text>&#10;</xsl:text>"
       		+ "</xsl:template>"            		
       		+ "</xsl:stylesheet>";
StringWriter out = new StringWriter();
TransformerFactory.newInstance().newTransformer(new StreamSource(new StringReader(xsl)))
		.transform(new StreamSource(new StringReader(xml)), new StreamResult(out));
System.out.println(out.toString());
...
Рейтинг: 0 / 0
Как в Java вывести в консоль значения атрибутов из файла XML?
    #39227709
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0FD, +1

тут по сути-самая ценная часть - шаблон /Data/Title/Obj и форматирование вывода
concat(@name,' ',@id,' ',@raz,' ',Value/text()) а все остальное - некая обвязка вокруг
механизма трансформаций.

Кстати, кто-нибудь в эпоху взлета XML/XSLT пробовал верстать странички с трансформацией
на стороне клиента?
...
Рейтинг: 0 / 0
Как в Java вывести в консоль значения атрибутов из файла XML?
    #39227841
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКстати, кто-нибудь в эпоху взлета XML/XSLT пробовал верстать странички с трансформацией
на стороне клиента?

Взлёт XML и XSLT даже не начал кончаться. Но это не нужно. Как-то давно я сделал показ дерева в HTML странице таким способом (переделав какой-то готовый пример), но сейчас есть более удобные.

Данную задачу можно решать, превращая XML в набор Java-объектов (что я часто делаю), для чего в данном примере надо создать Java-класс для содержимого элементов Оbj, а для вывода содержимого Java-объектов добавить в него метод toString(). Для этого есть несколько библиотек. В последнее время обычно использую Jackson JSON Processor. Как видно из названия, она предназначена для превращения объектов из/в JSON, но также можно из/в XML.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как в Java вывести в консоль значения атрибутов из файла XML?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]