[Java lista] xml(?) feldolgozás

Rákos Attila tenegri at tengerstudio.com
2008. Okt. 26., V, 13:03:53 CET


Az első evaluate() végigment a streamen és lezárta, így a második már
nem tud olvasni belőle. De én továbbra is azt mondanám, hogy ehhez DOM
a legmegfelelőbb. Pl. vhogy így:

          import java.io.StringReader;
          import javax.xml.parsers.DocumentBuilder;
          import javax.xml.parsers.DocumentBuilderFactory;
          import org.w3c.dom.*;
          import org.xml.sax.InputSource;

          ...
          
          String s = "<VALAMI_XML RESP='10' RESP2='20' />";
          
          InputSource source = new InputSource(new StringReader(s));
          DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
          DocumentBuilder docb = dbf.newDocumentBuilder();
          Document doc = docb.parse(source);
          Element root = doc.getDocumentElement();

          System.out.println("Egy attribútum:");
          System.out.println("RESP2: " + root.getAttribute("RESP2"));
          
          System.out.println("Az összes attribútum:");
          NamedNodeMap map = root.getAttributes();
          for (int i = 0; i < map.getLength(); i++) {
            Node attr = map.item(i);
            System.out.println(attr.getNodeName() + ": " + attr.getNodeValue());
          }
          
          System.out.println("Még egy külön attribútum másként:");
          System.out.println("RESP: " + map.getNamedItem("RESP").getNodeValue());

   De ehhez csak egy kicsit olvasni kell.
          
 A

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
From:    András Csányi <sayusi.ando at gmail.com>
To:      javalist at javagrund.hu <javalist at javagrund.hu>
Date:    Sunday, October 26, 2008, 12:05:06 PM
Subject: [Java lista] xml(?) feldolgozás
--====----====----====----====----====----====----====----====----====----===--
2008/10/26 Rákos Attila <tenegri at tengerstudio.com>:
>
> Egy ilyen egyszerű szerkezetű XML-nél inkább SAX vagy még inkább DOM
> alapon állnék neki, mint XPath-tal. A mikéntre szerintem tökéletesen
> elég lesz a Google legelső találata (még ha kicsit régi is):
>
> http://www.google.hu/search?hl=hu&q=java+xml&btnG=Keres%C3%A9s&meta=

Találkoztam ezzel az oldallal. Sőt olvastam is párszor :$

A problémám, hogy nem tudtam benne eligazodni. Van egy rakat
lehetőség, hogy mit használhatok és tényleg nem tudom mi az a mi jó
lenne.
Másodsorban van ez az átkozott xml amit használnak, hogy 1 node -ban
van minden és onnan kell kibányászni. Ettől is már kezdek kiakadni.

Odáig eljutottam, hogy XPath -al ki tudom bányászni az értéket. De ha
több értéket akarok kiszedni, akkor
"org.xml.sax.SAXParseException: Premature end of file." hibaüzenettel
örvendeztet meg.

A kód meg ez:
      InputStream in = conn.getInputStream();
      InputSource source = new InputSource(in);
      XPathFactory factory = XPathFactory.newInstance();
      XPath xPath = factory.newXPath();
      String specXml = xPath.evaluate("/VALAMI_XML/@RESP", source);
      String specXml2 = xPath.evaluate("/VALAMI_XML/@RESP2", source);
      in.close();

A hibaüzenet a String specXml2 sorra hivatkozik.
A kapott xml meg így néz ki:
<VALAMI_XML RESP='10' RESP2='20' />


-- 
- -
--  Csanyi Andras  -- http://sayusi.hu -- Sayusi Ando
--  "Bízzál Istenben és tartsd szárazon a puskaport!".-- Cromwell
_______________________________________________
Javalist mailing list
Javalist at javagrund.hu
http://javagrund.hu/mailman/listinfo/javalist
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=



További információk a(z) Javalist levelezőlistáról