Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для Robesper3411
20 / 19 / 3
Регистрация: 20.02.2012
Сообщений: 535
Записей в блоге: 1

Парсинг XML

20.08.2014, 08:41. Показов 1415. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно чтобы программа распарсила следующее
XML
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<xml>
<transactions>
<transaction    Date="01.08.2014"   Time="9:36:18"  Type="77555566">
<document   Project_Path="111111"   Project_Name="3242432">
    <configuration  name="-00">
        <attribute name="Обозначение"    value="123"/>
        <attribute name="Наименование"  value="Плата"/>
    <references>
        <document   AD_ID="zzzzzzzzz">
            <configuration name="zzzzzzzzzzzzz">
                <attribute name="Обозначение"    value="11111"/>
                <attribute name="Наименование"  value="zzzzzzzzz"/>
            </configuration>
        </document>
        <document   AD_ID="ssssssssss">
            <configuration name="ssssssssssss">
                <attribute name="Обозначение"    value="1111111111111"/>
                <attribute name="Наименование"  value="sssssssss"/>
            </configuration>
        </document>
    </references>
    </configuration>
    <configuration  name="-01">
        <attribute name="Обозначение"    value="456"/>
        <attribute name="Наименование"  value="Плата456"/>
    <references>
        <document   AD_ID="z2z2z2z2z2z2z2z2z">
            <configuration name="z2z2z2z2z2z2z2z2z">
                <attribute name="Обозначение"    value="2222222"/>
                <attribute name="Наименование"  value="z2z2z2z2z2z2z2z2z"/>
            </configuration>
        </document>
        <document   AD_ID="s2s2s2s2s2s2s2s2s">
            <configuration name="s2s2s2s2s2s2s2s2s">
                <attribute name="Обозначение"    value="2222222"/>
                <attribute name="Наименование"  value="s2s2s2s2s2s2s2s2s"/>
            </configuration>
        </document>
    </references>
    </configuration>
</document>
</transaction>
</transactions>
</xml>
и получила
Bash
1
2
3
4
5
6
-00
zzzzzzzzzzzzz
ssssssssssss
-01
z2z2z2z2z2z2z2z2z
s2s2s2s2s2s2s2s2s
То есть при смене значения в /xml/transactions/transaction/document/configuration. Собирала новые значения.
Пока что есть часть решения
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
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
 
import org.xml.sax.InputSource;
import org.w3c.dom.NodeList;
 
public class path 
{
    public static void main(String[] args) throws XPathExpressionException 
    {
                //Тут и находится фишка для достижения определенного уровня
        XPath xpath = XPathFactory.newInstance().newXPath();
        String expression = "/xml/transactions/transaction/document/configuration/references/document/configuration/attribute";
        
                NodeList nameNodes = (NodeList) xpath.evaluate(expression, new InputSource("in.xml"), XPathConstants.NODESET);
        for(int i = 0 ; i < nameNodes .getLength(); i++)
        {
            if(nameNodes.item(i).getAttributes().getNamedItem("name").getNodeValue().equals("Обозначение"))
                System.out.println(nameNodes.item(i).getAttributes().getNamedItem("value").getNodeValue());
        }
    }
}
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.08.2014, 08:41
Ответы с готовыми решениями:

Парсинг XML
Здравствуйте, товарищи форумчане! Передо мной встала задача распарсить расписание для группы, оно находится на сайте! Но я решил не...

Парсинг xml
Некий сайт выдает ответ в вот таком виде &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;RequestValidated&gt; &lt;Request&gt; ...

Парсинг XML в дерево
Всем привет. Препод в универе задал задание написать парсер. Он должен парсить XML-файл в свой класс дерево. Вот задаюсь вопросом как...

2
27 / 27 / 13
Регистрация: 07.11.2010
Сообщений: 154
20.08.2014, 12:02
Не совсем понял что нужно сделать, но посмотри здесь.
0
 Аватар для Robesper3411
20 / 19 / 3
Регистрация: 20.02.2012
Сообщений: 535
Записей в блоге: 1
21.08.2014, 08:29  [ТС]
Krasti, пардон, кое-чего лишнего написал.
Но поставленную задачу решил сам.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import java.util.ArrayList;
 
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
 
import org.xml.sax.InputSource;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
 
public class path 
{
    static ArrayList<String[]> list = new ArrayList<String[]>();
    public static void main(String[] args) throws XPathExpressionException 
    {
        String e, str = null;
        Node x, z, v, q;
        NodeList y, w, s, attrlist;
        XPath xpath = XPathFactory.newInstance().newXPath();
        //Задаю тот уровень xml, из которого получу корневые ноды
        String ex1 = "/xml/transactions/transaction/document/configuration";
        NodeList nameNodes = (NodeList) xpath.evaluate(ex1, new InputSource("out.xml"), XPathConstants.NODESET);
        for(int i = 0 ; i < nameNodes.getLength(); i++)
        {
            x = nameNodes.item(i);
            System.out.println(x.getAttributes().getNamedItem("name").getNodeValue());
            y = x.getChildNodes();
            for(int j = 0; j < y.getLength(); j++)
            {
                z = y.item(j);
                if(z.getLocalName() != null)
                {
                    if(z.getLocalName().equals("references") & z.getLocalName()!=null)
                    {
                        w = z.getChildNodes();
                        for(int k = 0; k < w.getLength(); k++)
                        {
                            v = w.item(k);
                            if(v.getLocalName()!=null)
                            {   
                                s = v.getChildNodes();
                                for(int a = 0; a < s.getLength(); a++)
                                {
                                    if(s.item(a).getLocalName()!=null)
                                    {
                                        attrlist = s.item(a).getChildNodes();
                                        for(int b = 0; b < attrlist.getLength(); b++)
                                        {
                                            if(attrlist.item(b).getLocalName()!=null)
                                                System.out.println(attrlist.item(b).getAttributes().getNamedItem("value").getNodeValue());
                                        }
                                    }
                                }   
                                
                            }
                        }
                            break;
                    }
                    System.out.println(y.item(j).getAttributes().getNamedItem("value").getNodeValue());
                }
            }
        }
    }
}
может мало ли кому понадобится в качестве примера. Задача сводится к получению дочерних нод.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.08.2014, 08:29
Помогаю со студенческими работами здесь

Парсинг XML в java
Помогите с программой пожалуйста (хотя бы задайте верное направление) Имеется xml документ, там содержатся данные о нескольких фирмах, в...

Парсинг XML. startElement
Есть кусок кода (упрощён для наглядности) static private class RSSHandler extends DefaultHandler { public void startDocument()...

Парсинг XML из String
Нужен удобный инструмент, для работы с xml, который получаем в строке. Попытался реализовать следующим образом: string =...

Парсинг XML в Класс
Здравствуйте други. Нагуглил тему про парсиг XML и вроде как даже чего то понял и там был вот такой пример package edu.javacourse.xml; ...

Парсинг XML с использованием SAX
Доброго времени суток. Ребят есть xml и его требуется спарсить с использованием SAX. В общем паршу все работает, но выводит не то что надо....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru