Wie kann ich in einem Nokogiri XML DocumentFragment durch untergeordnete Knoten eines bestimmten Namens iterieren?

8

Gegeben dieses XML in einer Zeichenfolge namens "string":

%Vor%

Und diese Codezeile:

%Vor%

Ich möchte alle Knoten mit dem Namen "Part" durchlaufen.

Ich habe Folgendes versucht:

%Vor%

und:

%Vor%

Aber das hat nicht funktioniert.

    
AKWF 18.12.2011, 14:57
quelle

4 Antworten

8

Das Problem besteht darin, dass das Parsing des XML als Fragment ein Teil-XML-Dokument zurückgibt, d. h. ein DocumentFragment , das keinen Stamm hat:

%Vor%

wobei ein vollständiges XML-Dokument eine Wurzel hat:

%Vor%

Standardmäßig sucht Nokogiri von der Wurzel des Dokuments aus mit einem XPath wie //Path :

%Vor%

Aber das scheitert mit dem Fragment wegen der fehlenden Wurzel:

%Vor%

Der Trick besteht darin, Nokogiri zu sagen, wo es beim Umgang mit dem Fragment hingehen soll. Verwenden einer relativen Suche oder eines Platzhalters:

%Vor%

oder

%Vor%     
the Tin Man 18.12.2011, 19:15
quelle
1
%Vor%     
thoferon 18.12.2011 15:13
quelle
1

Wenn Sie nur eine Zeichenkette haben, analysieren Sie stattdessen einfach mit Nokogiri:XML :

%Vor%

gibt Ihnen eine Wurzel, von der Sie den xpath //Part wie erwartet verwenden können.

    
Mark Thomas 18.12.2011 20:20
quelle
0
%Vor%

sollte den Job erledigen.

    
Reactormonk 18.12.2011 15:04
quelle

Tags und Links