XPATH gesucht

oldshoe

Bekanntes Mitglied
Hallo,
ich bin in Sachen XPATH ein kompletter Anfänger.
Ich weiß nicht so ganz wie man mein Problem am besten mit XPATH löst.

gegeben:
XHTML-Seite
ein konkreter Knoten z.B. <img href="http://genau_dieses_Bild.de></img>

Aufgabe:
Schauen ob genau dieses Bild eine Überschrift (z.B. <h1>Michael Jackson</h1>) in der Nähe hat, die man diesem zuordnen kann.

Wie löst man das am Besten?
Ich weiß dass man siblingKnoten bzw. parentKnoten auslesen kann und da müsste man nur schauen ob eine Überschrift dabei ist. Aber dafür müsste ich für diesen konkreten mir schon vorliegenden Knoten einen XPATH generieren? Wie geht das?

Bin für jede Hilfe dankbar!
 

dayaftereh

Top Contributor
Kannst du mal die xHtml seite Posten! du musst einfach den Pfad wie bei Datei System angeben also so "html/body/img/@href" du kannst aber auch "//h1[text()="Michael Jackson"]" so schaust du ob du ein h1 findest wo der Text = Michael Jackson.
 

oldshoe

Bekanntes Mitglied
Hmmm...naja das Problem ist eher abstrakt zu sehen...hab da jetzt keine konkrete XHTML-Seite.
Mein Idealfall wäre eigentlich, dass ich einen Knoten in einen String konvertieren kann.
Also mit getNodes und den Path: //BODY//IMG bekomme ich erstmal sämtliche img-tags....könnte ich mit contains überprüfen ob mein konkreter imagetag dabei ist... allerdings liegen mir die Nodes (w3c.dom.node) nicht so ideal vor, dass ich sie in einen String
der Form: <img href="http://genau_dieses_Bild.de></img> konvertieren kann.
Hat jemand eine Idee? Sowas muss doch schon mal wer gemacht haben!
 

hemeroc

Bekanntes Mitglied
Bei mir würde diese Abfrage wohl so in etwa aussehen:

Code:
//img[@href = "http://genau_dieses_Bild.de" AND ./preceding-sibling::h1[text() = "Michael Jackson"]]
Achtung ungetestet!

Allerdings wäre es hilfreich wenn du
a) das xhtml-File postest und //EDIT: sry zu langsam gewesen hmm mach dir ein Demo-File das hilft beim testen.
b) uns sagst was du mit "in der Nähe" bei der überschrift meinst. Das kann nämlich je nach dem aufwändiger oder weniger aufwändiger sein.

LG
Hemeroc
 
Zuletzt bearbeitet:

oldshoe

Bekanntes Mitglied
Für die Node To String Konvertierung habe ich folgendes gefunden.
Das funktioniert soweit auch erstmal.

Java:
 Transformer t = null;
try {
      t = TransformerFactory.newInstance().newTransformer();
      } catch (TransformerConfigurationException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
      } catch (TransformerFactoryConfigurationError e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
      }
      StringWriter sw = new StringWriter();
      try {
           t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
           t.transform(new DOMSource(node), new StreamResult(sw));
           } catch (TransformerException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
           }
           String yourAnswer = sw.toString();
           yourAnswer = yourAnswer.replace("xmlns=\"http://www.w3.org/1999/xhtml\" ", "");
 

hemeroc

Bekanntes Mitglied
OK Alles is interessanter als für meine Statistik Prüfung zu lernen ^^

Testfile:
Code:
<!DOCTYPE html>
<html>
	<head>
		<title>demo</title>
	</head>
	<body>
		<h1>Nicht Michael Jackson</h1>

		<img href="http://genau_dieses_Bild.de"></img> <!-- Falsche Überschrift -->
	
		<h1>Michael Jackson</h1>

		<img href="http://genau_dieses_Bild.nicht"></img> <!-- Falsches href Attribut -->

		<img href="http://genau_dieses_Bild.de"></img> <!-- dieser Knoten kommt zurück -->

	</body>
</html>

Bei der Anfrage:
Code:
//img[@href = "http://genau_dieses_Bild.de" and preceding-sibling::h1[text() = "Michael Jackson"]]

//Edit: irgendwie is mir jetzt ned ganz klar was du willst, ich dachte du willst eine XPath Anfrage? Meine funktioniert auf jeden Fall mal. Du brauchst die Node in keiner Weise in einen String oder what ever zu transformieren.
 
Zuletzt bearbeitet:

oldshoe

Bekanntes Mitglied
Erstmal vielen Dank für deine Bemühungen.
Ich habe mein Beispiel vom tatsächlichen Anwendungsfall heruntergebrochen.
Eigentlich geht es um <object>-Knoten.
Die für mich relevanten (also z.B. die die eine .swf enthalten) habe ich vorher per regex extrahiert.
Das Problem ist nämlich, dass die swf sowohl als attribut vom object aber auch als childKnoten der Form <param name="movie" value="meinFlash.swf"> gegeben sein kann.

Nun habe ich das Regex-Ergebnis und lasse mir alle object-Nodes liefern. Passt ein object-Node zum RegexKnoten (daher die StringKonvertierung) kann ich schauen ob es previousSiblings mit <h1> oder so gibt oder weiterausschweifend ob der ParentKnoten <h1>-siblings besitzt usw.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G XPath gesucht für Tag mit konkretem Content XML & JSON 2
Kirby.exe Probleme mit XML XPATH Select XML & JSON 3
B XPath soll XML liefern XML & JSON 7
O XPATH Problem - Anfänger XML & JSON 4
M dom4j unberechtigte Invalid XPath expression XML & JSON 12
W XPath schreiben XML & JSON 1
P HTML XPath XML & JSON 1
S Ersatz für die veraltete Klasse XPath XML & JSON 1
C XPath: Alle Kinder in einer Schleife auslesen XML & JSON 2
P Xpath zugriff auf Attribute XML & JSON 3
P "XPath is deprecated" XML eclipse XML & JSON 3
G HtmlUnit XPath XML & JSON 5
D XPath-Query XML & JSON 2
I XPath Namensräume und auslesen einzelner Knoten XML & JSON 3
AMStyles XPATH Befehl SVG Java XML & JSON 2
G xpath: in Kindelement zwei Attribut-Werte auslesen XML & JSON 2
G xpath: Inhalt eines Kindelements auslesen XML & JSON 2
H ChildNode via XPath ansprechen XML & JSON 2
G JDOM - aus Children-Liste ein Child direkt ansprechen ohne XPath? XML & JSON 9
S Attribute von Elementen auslesen mit XPath XML & JSON 2
T Xpath & JDOM Element Pfad ausgeben XML & JSON 2
W XPath + Inhalt aus <td> XML & JSON 2
R XPath - frage zur Adressierung XML & JSON 3
reibi XPath XML & JSON 14
M xPath liefert leeres Nodeset XML & JSON 2
M Probleme mit XPath bei Java XML & JSON 5
W Element mit XPath @id ermitteln wenn nur ein teil der id bekannt ist XML & JSON 2
F XPath-Problem mit DOM4J XML & JSON 8
T XPath Problem: finden einer Node nach Attributswert XML & JSON 2
G XPATH-Frage XML & JSON 2
L Element manipulieren in einem DOMResult per XPath XML & JSON 10
P XPath und Namespaces XML & JSON 3
G XPath - replace function funktioniert nicht XML & JSON 3
E XPATH-Ausdruck mit not XML & JSON 4
E Wieso liefert dieser XPATH-Ausdruck nicht die richtige Anzahl Treffer? XML & JSON 8
M XPath Ausdruck validieren XML & JSON 2
N XPath Adressierung XML & JSON 7
F XPath frage XML & JSON 4
B Optionaler XPath pfad XML & JSON 2
B XPath frage XML & JSON 2
T Frage zu XQuery (XQJ) / XPath XML & JSON 2
P XPath Problem XML & JSON 2
S Problem mit XPath XML & JSON 4
T Mit XPATH finden und dann änder XML & JSON 2
T EXSD auslesen mit XPath und JDOM XML & JSON 8
A XPath Problem XML & JSON 2
C XPath in JDOM klappt nicht XML & JSON 2
T Prbolem XPath XML & JSON 2
X Xpath, alle Element die mit "user" beginnen auswäh XML & JSON 2
loadbrain XPath Problem XML & JSON 2
M brauche große XML-Datei für XPath-Tests XML & JSON 4
M JDOM und XPath, zu Element zugehörigen XPath-Ausdruck XML & JSON 5
F JDOM und XPath - Problem mit Namespace ohne Prefix XML & JSON 5
F hilfe bei xpath-ausdruck XML & JSON 2
K java + xpath -> performanceproblem XML & JSON 9
H Xpath kindelemente auslesen XML & JSON 2
S Xml zurück in xpath wandeln XML & JSON 8
G Frage zu XPath XML & JSON 2
flashfactor Filtern mittels XPATH XML & JSON 4
M XSL/XPath - Nur ersten Wert mit selben Attribut XML & JSON 4
M XPath Problem im Zusammenhang mit document() XML & JSON 2
M Frag zu xsl:when beziehungsweise XPath XML & JSON 3
F JDom und XPath XML & JSON 12
C xpath funktioniert nicht XML & JSON 5
M XPATH und RSS (Problem namespaces) XML & JSON 7
P nochmal XPath :-) XML & JSON 22
P XPath . XML & JSON 2
T Rekursiver Verzeichniss Baum in XML & XPath XML & JSON 4
clemson xpath mit jdom XML & JSON 2
Wildcard xpath Parser XML & JSON 8
J JSon-Converter gesucht XML & JSON 2
N Framework zur Graphenvisualisierung gesucht XML & JSON 5
G XML-API mit bestimmter Funktionalität gesucht XML & JSON 4
J Regular Expression gesucht XML & JSON 4
J Beispiel aus Java Magazin 03/2004 gesucht ! XML & JSON 6
M Apache XML-RPC Tutorial gesucht! XML & JSON 9

Ähnliche Java Themen

Neue Themen


Oben