Xpath parser - możliwość dodania String'a do listy elementów

0

Witam
Jestem osobą początkującą dlatego z góry przepraszam jeśli pytanie jest błahe ;)
Otóż mam aplikacje, która parsuje dokument XML.
Problem leży w sposobie ich wyświetlania. Chciałbym żeby przed każdym elementem był wyświetlony string.

private List<String> getAllPatients(Document doc, XPath xpath) {
        List<String> list = new ArrayList<>();
        try {
            //create XPathExpression object
            XPathExpression expr =
                    xpath.compile("/deklaracjaWyboru/daneSwiadczeniobiorcy//daneOsobowePacjenta/imie//text() | //daneOsobowePacjenta/nazwisko//text() | //daneOsobowePacjenta/plec//text() | //daneOsobowePacjenta/nrPesel//text() | //daneUrodzenia/dataUrodzenia//text() | //daneUrodzenia/miejsceUrodzenia//text() | //adresZamieszkania/ulica//text() | //adresZamieszkania/nrDomu//text() | //adresZamieszkania/nrMieszkania//text() | //adresZamieszkania/miejscowosc//text() | //adresZamieszkania/kodPocztowy//text() | //daneKontaktowe/nrKomorkowy//text() | //daneKontaktowe/nrStacjonarny//text()");
            //evaluate expression result on XML document
            NodeList nodes = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
            for (int i = 0; i < nodes.getLength(); i++)
                list.add(nodes.item(i).getNodeValue());
        } catch (XPathExpressionException e) {
            e.printStackTrace();
        }
        return list;
    }

Obecnie wypisywana jest lista tych elementów:

[Jan, Kowalski, Mężczyzna, 92010177881, 01.01.1992, Gdynia, Morski, 2, 3, Gdynia, 12-345, 123456789, 581234567]

Chciałbym żeby każdy element poprzedzał String, np.:

[Imię: Jan,
Nazwisko: Kowalski,
Płeć: Mężczyzna itd.]

Bardzo proszę o jakieś wskazówki
Z góry dziękuje.

0

Nie wiem jak inni ale ja nie rozumiem o co ci chodzi. Możesz pokazać standardowy bug report:

  • co robisz (to pokazałeś)
  • co uzyskujesz (tego brakuje)
  • co chciałbyś uzyskać (tego brakuje)
0

Ok no to zamiast po prostu nodes.item(i).getNodeValue() to wyciągnij sobie jakieś node name czy tam node name parenta (bo nie chce mi sie testować na jakim levelu w drzewie tu jesteś). Zamiast zadawać pytania na forum i czekać na odpowiedź to byś po prostu dał breakpointa w tej pętli i zobaczył jak się tam dobrać do tej wartości która cię interesuje...

0

Dziękuję za pomoc. Nie udało mi się jeszcze osiągnąć zamierzonego efektu, ale będę kombinował :) dzięki raz jeszcze :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1