Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как в Java вывести в консоль значения атрибутов из файла XML? / 11 сообщений из 11, страница 1 из 1
28.04.2016, 23:31
    #39227112
Hehabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Java вывести в консоль значения атрибутов из файла XML?
Подскажите как в 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
29.04.2016, 01:46
    #39227162
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Java вывести в консоль значения атрибутов из файла XML?
Hehabr,

Например, воспользоваться XML-парсером
...
Рейтинг: 0 / 0
29.04.2016, 12:19
    #39227383
no56892
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Java вывести в консоль значения атрибутов из файла XML?
XPath
...
Рейтинг: 0 / 0
29.04.2016, 12:54
    #39227410
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Java вывести в консоль значения атрибутов из файла XML?
В рамках пятницы предлагаю конкурс на оригинальность. Давайте решим задачу
через grep например.
...
Рейтинг: 0 / 0
29.04.2016, 13:07
    #39227422
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Java вывести в консоль значения атрибутов из файла XML?
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
29.04.2016, 13:15
    #39227428
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Java вывести в консоль значения атрибутов из файла XML?
Код: 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
29.04.2016, 13:31
    #39227438
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Java вывести в консоль значения атрибутов из файла XML?
Крутяк!

Я вот думаю что еще string-replacement-ом можно удалить все XML-разметки и заменить на пробелы.
И останется какраз то что автору нужно.
...
Рейтинг: 0 / 0
29.04.2016, 16:46
    #39227693
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Java вывести в консоль значения атрибутов из файла XML?
Код: 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
29.04.2016, 17:01
    #39227704
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Java вывести в консоль значения атрибутов из файла XML?
Код: 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
29.04.2016, 17:09
    #39227709
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Java вывести в консоль значения атрибутов из файла XML?
0FD, +1

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

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

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

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


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