Attribute im Xpath-local-name()
Dies ist ein kleines Beispiel meiner xml-Datei.
<w:p xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:pPr>
<w:rPr>
<w:highlight w:val="yellow"/>
</w:rPr>
</w:pPr>
<w:bookmarkStart w:id="0" w:name="_GoBack"/>
<w:bookmarkEnd w:id="0"/>
<w:r w:rsidRPr="00D1434D">
<w:rPr>
<w:rFonts w:ascii="Times New Roman"
w:eastAsia="MS PGothic"
w:hAnsi="Times New Roman"/>
<w:b/>
<w:color w:val="000000"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="yellow"/>
</w:rPr>
<w:t xml:space="preserve">Responses to </w:t>
</w:r>
<w:r w:rsidR="00335D4A" w:rsidRPr="00D1434D">
<w:rPr>
<w:rFonts w:ascii="Times New Roman"
w:eastAsia="MS PGothic"
w:hAnsi="Times New Roman"/>
<w:b/>
<w:color w:val="000000"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="yellow"/>
<w:lang w:eastAsia="ja-JP"/>
</w:rPr>
<w:t>the Reviewer</w:t>
</w:r>
</w:p>
Möchte ich zum extrahieren von text mit der w:highlight
tag speziell mit dem Attribut value
= "gelb" . Ich suchte für Sie, aber war nicht in der Lage zu kommen mit einer Lösung.
Folgende Werke für highlight-im Allgemeinen:
for t in source.xpath('.//*[local-name()="highlight"]/../..//*[local-name()="t"]'):
do something
Habe ich versucht :
for t in lxml_tree.xpath('//*[local-name()="highlight"][@val="yellow"]/../..//*[local-name()="t"]'):
dies nicht funktioniert, gibt nichts zurück..
- Für die Fragen der Zukunft, stellen Sie sicher, dass Ihre XML korrekt formatiert und lesbar ist (eine unglaublich lange Linie nicht). Auch die
w:
Präfix wurde nicht deklariert und Ihre XML-snippet, das nicht wohlgeformt ist, weil</w:p>
fehlte. - wie wird die xml-formatierte Daten auf SO??
- dieses question war etwas ähnlich , aber es funktioniert nicht auf local-name().
- Man kann nicht formatieren Sie es automatisch. Entweder tun Sie es manuell, oder z.B. durchführen einer XSLT-Identität, Transformation, richtig Einrückungen der XML.
Du musst angemeldet sein, um einen Kommentar abzugeben.
w:val
- Attribut im Namensraum, so können Sie nicht nur Adresse ein es von@val
. Eine mögliche Lösung ist die Verwendung@*[local-name()='attribute name']
Ausdruck-Adresse ein Attribut, indem es die lokalen Namen, die ähnlich zu dem, was Sie getan haben für die Elemente :following::
statt/../..//
? Siehe xsltransform.net/bdxtpQ.//*
was bedeutet, jedes element..
beziehen sich auf den aktuellen Kontext, die in einem speziellen Verwendungszweck ist der Wert des Attributs bezeichnet durch@*
w:t
folgt, dass nachw:highlight
immer den markierten text.