2016-11-30 83 views
1

我正在通過python中的untangle解析XML文件並將內容寫入數據庫。在解析之前如何檢查XML中的屬性和標籤的存在

對於不同的標籤,兒童標籤的內容將是不同的。例如,第一個事件標記具有派對標記作爲子項,但第二個事件標記沒有。

- >如何在解析之前檢查標記是否存在? 目前我的代碼會因不存在的第三方代碼錯誤,並設置一個None

AttributeError: 'NoneType' object has no attribute 'Title' 
+0

如果「needed_tag_str」在child.tag:比打印child.tag [needed_tag_str] ....但創建一個虛擬xml文件,發佈你的代碼,告訴我們你的結果和期望 –

+0

EAFP:你不能只是捕捉異常並相應地處理缺失的標籤嗎? –

回答

-1
 <Program programId="c fragmentVersion="14755725670045441" > 
      <Description> 
       <ShortTitle xml:lang="en-US" length="9">Max Steel</ShortTitle> 
       <Synopsis xml:lang="en-US" length="short">The adventures of .</Synopsis> 
       <Synopsis xml:lang="en-US" length="medium">The adventures bo-charged superhero</Synopsis> 
       <CreditsList> 
        <CreditsItem role="urn:eventis:metadata:cs:RoleCS:2010:CONTENT-PROVIDER"> 
         <OrganizationName xml:lang="en-US">SeaChange</OrganizationName> 
        </CreditsItem> 
        <CreditsItem role="urn:eventis:metadata:cs:RoleCS:2010:CONTENT-PROVIDER-ID"> 
         <OrganizationName xml:lang="en-US">seachange.com</OrganizationName> 
        </CreditsItem> 
       </CreditsList> 
       <RelatedMaterial> 
        <HowRelated href="urn:eventis:metadata:cs:HowRelatedCS:2010:poster"/> 
        <MediaLocator> 
         <MediaUri xmlns="udoster.jpg</MediaUri> 
        </MediaLocator> 
       </RelatedMaterial> 
       <RelatedMaterial> 
        <HowRelated href="urn:eventis:metadata:cs:HowRelatedCS:2010:boxCover"/> 
        <MediaLocator> 
         <MediaUri xmlns="urn:tva:mpeg7:2008">dover.jpg</MediaUri> 
        </MediaLocator> 
       </RelatedMaterial> 
       <ProductionDate> 
        <TimePoint>2016</TimePoint> 
       </ProductionDate> 
       <Duration>22110</Duration> 
      </Description> 
     </Program> 
+0

這不是一個答案。請使用此示例XML編輯原始帖子。然後刪除這個答案。 – Parfait