suche bestimmten Knoten mit bestimmten attribut

Status
Nicht offen für weitere Antworten.
C

christophd

Gast
Hallo,
bin java anfänger und stehe ein wenig an.

Ich habe es geschafft eine Homepage einzulesen und mit jtidy glattgebügelt und habe jetzt vermutlich einen funktionierenden DOM.

Die Homepage besteht aus allem möglichen, Ich möchte nur die Knoten mit "div" und dem Attribut id="Layer1" herausfischen und in neues Document schreiben.

Dies ist ein bespiel eines knoten die ich in eine neue xml struktur packen will:
Code:
....
<div id="Layer1" class="text123">
<div>2.15</div>
</div>
....
Wie suche ich nach Knoten "div" und Attribut id="Layer1" durch den ganzen Dom?

Vielen Dank!
Christoph
 
R

Roar

Gast
rekursiv den baum durchlaufen: Node#getChildNodes()
und für jedes Element überprüfen ob Element.getTagName().equals("div");
wenn ja das ganze Element ins neue Document einfügen. die kinder von dem Element brauchst du ja nicht nochmal zu überprüfen so wie in deinem beispielcode, da ja eh die ganze struktur eingefügt wird. oder willst du wirklich nur die div elemente ohne kinder haben?
 
C

christophd

Gast
Ich habe einmal ein wenig gebastelt. So ungefähr sollte es funktionieren.

Code:
public static Node knotenSuchen(Node doc)
	  {
		 NodeList temp = doc.getChildNodes();
		 
		 for(int i = 0;i<temp.getLength(); i++){
			 knotenSuchen(temp.item(i));
		 }
	  }

Wo füge ich die überprüfung (getTagName().equals("div") && "Attribut" id=Layer1 ) ist vorhanden ein und wie mache ich das mit den returnwerten?

vg christoph
 
R

Roar

Gast
ach, willst du nur *ein* elemt haben nämlich das mit dem namen div und der id "Layer1" oder alle div elemente? wenn ersteres dann so:

Code:
public static Element knotenSuchen(Element elem, String name, String id)
     {
       if(elem.getTagName().equals(name) && elem.getAttribute("id").equals(id))
            return elem;
       NodeList temp = doc.getChildNodes();
      
       for(int i = 0;i<temp.getLength(); i++){
          Node item = temp.item(i);
          if(item instanceof Element)
              knotenSuchen((Element) item);
       }
     }

wenn du mehrere knoten haben willst: in Liste einfügen und als array zurückgeben.
 
G

Guest

Gast
danke! Ich will mehree Knoten, das bekomme ich schon hin.

aber mein element hat kein .getTagName()

das sind meine imports:
Code:
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;

import org.jdom.Element;
import org.jdom.xpath.XPath;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.tidy.Tidy;

Habe ich das falsche jdom.Element?
 
R

Roar

Gast
hä? benutzt du jdom oder die jaxp? oder vermischst du beides in der hoffnung dass java schon weiß was du meinst?
 
G

Guest

Gast
Ich hab keine Ahnung was ich benutzen soll, bzw. was besser ist ;)

Was ist jaxp?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Suche guten freien XML Schema (XSD) Editor XML & JSON 7
I Suche gutes Buch zu XML XML & JSON 2
F XML Suche funktioniert nicht XML & JSON 5
M Suche HTML-API XML & JSON 3
C Suche in XML-Datei XML & JSON 6
D Suche XML-DB mit insert XML & JSON 6
S Suche Buch zu XSD XML & JSON 5
M Suche Wetter und Börsen Web-Service XML & JSON 4
A Auf der Suche nach Bibliotheken oder wie parsen? XML & JSON 15
V suche ein package? Kann mir jemand helfen? XML & JSON 4
D Suche eine OnlineQuelle für SAX XML & JSON 2
wofus JSON filtern nach bestimmten Wert XML & JSON 7
W Kindelemente mit JDOM eines bestimmten Attributes auslesen XML & JSON 6
G xslt Attributwerte von bestimmten Elementen XML & JSON 2
Nicer Bestimmten Wert aus einer XML Auslesen XML & JSON 34
L SAXReader , auslesen bis zum bestimmten knoten! XML & JSON 3
P HTML Seite Parsen, und bestimmten Text extrahieren XML & JSON 3
A Element an einer bestimmten Stelle einfügen (nicht am Ende) XML & JSON 4
I XPath Namensräume und auslesen einzelner Knoten XML & JSON 3
B XML und do while Schleife, Knoten falsch XML & JSON 5
K XML Tabs als Knoten gezählt XML & JSON 3
sylo Knoten mittels selbstgebasteltem TreePath öffnen XML & JSON 2
B im DOM anzahl der Knoten in tiefe 3 zählen XML & JSON 2
E XML Knoten mit rekursiver Methode auslesen XML & JSON 3
console xml knoten mit attribut löschen XML & JSON 3
D Anzahl der Knoten in einer XML XML & JSON 6
M neue Knoten erstellen ? XML & JSON 6
R Knoten einfügen und sofort CDATA-Sektion darunter XML & JSON 7
P Knoten-Attribute einer xsd-Datei in einem JTree auslesen XML & JSON 18
D Kann man neue Knoten löschen? XML & JSON 4
Z DOM: Attribute in Knoten schreiben XML & JSON 2
Z Erzeugung einer Referenz von Knoten in JTree auf DOMTree XML & JSON 3

Ähnliche Java Themen

Neue Themen


Oben