DOM - pobranie wartości atrybutów

DOM - pobranie wartości atrybutów
S1
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 13 lat
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:

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

fragment kodu:

Kopiuj
 
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.

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
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.


R9
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 11 lat
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:

Kopiuj
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
);
edytowany 2x, ostatnio: Razi91
S1
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 13 lat
0

Wielkie dzięki za pomoc :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.