2016-05-31 13 views
-1

Ich habe die unten XML-Datei:Wie xml mit Python analysieren

<?xml version="1.0" encoding="UTF-8"?> 
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
    cq:lastReplicated="{Date}2016-03-02T15:23:40.679-05:00" 
    cq:lastReplicatedBy="XXXXt" 
    cq:lastReplicationAction="Activate" 
    jcr:description="Procedure" 
    jcr:mixinTypes="[cq:ReplicationStatus]" 
    jcr:primaryType="cq:Tag" 
    jcr:title="Lung Volume Reduction Surgery" 
    sling:resourceType="cq/tagging/components/tag"/> 

Ich versuche, die XML-Datei mit ElementTree zu analysieren, aber ich bin nicht in der Lage „Lung Volume Reduction Surgery“ zu extrahieren, die unter dem ist Tag jcr:title.

Ich habe bereits versucht, mit BeatifulSoup, Regex und ElementTree aber nicht in der Lage, es zu tun

Unten ist der Code, den ich für Element Baum verwendet:

import xml.etree.ElementTree as ET 
xml="Actual xml document" 
xml.find('./root').attrib['title'] 

Ich bin ein Anfänger in XML-Parsing .. und verbrachte mehr als 3 Stunden nun auf dieser XML-Datei aber nicht in der Lage, den Wert jcr:title Jede Hilfe sehr

+1

Sie müssen den Namespace verwenden –

Antwort

1

geschätzt wird hier zu analysieren ist eine Art und Weise, mit xml.etree.ElementTree

from xml.etree import ElementTree as ET 

tree = ET.parse('input.xml') 
root = tree.getroot() 

jcr_namespace = "http://www.jcp.org/jcr/1.0" 

print root.attrib[ET.QName(jcr_namespace, 'title')] 
+0

Vielen Dank Rob :) –