DOM - pobranie wartości atrybutów

0

Witam
Pisze prosty projekt i mam problem z wyświetleniem wartości atrybutu węzła w pliku XML. Używam DOM-a

Poniższy kod wyświetla mi: wartosc = "1", a potrzebuje, żeby wyświetlało samą 1.

fragment pliku xml:

<company>
	<employee>
		<firstname wartosc = "1" >Tom</firstname>
		<lastname>Cruise</lastname>
	</employee>
        ....
</company>

fragment kodu:

 
import org.w3c.dom.*;
.......
try {
  File file = new File("MyXMLFile.xml");
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  DocumentBuilder db = dbf.newDocumentBuilder();
  Document doc = db.parse(file);
  doc.getDocumentElement().normalize();
  NodeList nodeLst = doc.getElementsByTagName("employee");

  Node fstNode = nodeLst.item(0);

    if (fstNode.getNodeType() == Node.ELEMENT_NODE) {

      Element fstElmnt = (Element) fstNode;
      NodeList wezel = (NodeList) fstElmnt.getElementsByTagName("firstname");
     Node atrybut = wezel.item(0).getAttributes().getNamedItem("wartosc");
     
      System.out.println("atrybut : "  + atrybut);
    }
}

Z góry dziękuje za pomoc.

1

http://www.altcontroldelete.pl/artykuly/java-operacje-na-tekscie/

CharAt oraz SubString

1.Sprawdzasz pozycję znaku " i wycinasz string'a od 1 do tej pozycji.
2.Sprawdzasz pozycję znaku " i wycinasz string'a od tej pozycji do końca.

1

Pobierasz do NodeList obiekty klasy Element (getElementsByTagName). Element extends Node, więc przez NodeList wyciągasz je jako Node, ale to w rzeczywistości Elementy. A klasa Element ma taką metodę jak String getAttribute(String attributeName)

http://download.oracle.com/javase/1.4.2/docs/api/org/w3c/dom/Element.html

Jako że zwraca Stringa, musisz go przeparsować do inta:

int wartosc=Integer.parseInt(
  ((Element)wezel.item(0)) //zrzucenie do typu Element, bez tego nie dostaniesz się do metody getAttribute
                     .getAttribute("wartosc")  //działanie na obiekcie zrzuconym do klasy Element
);
0

Wielkie dzięki za pomoc :)

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