2011-04-20 109 views
0
""" test.xml 

<xyz> 
     <pqr> 
     <abc><a href="data:text/html;charset=utf-8,base64,JTNjc2NyaXB0JTNlYWxlcnQoIlhTUyIpO2hpc3RvcnkuYmFjaygpOyUzYy9zY3JpcHQlM2UiPjwvYT4=</abc> 
     </pqr> 
     <pqr> 
     <abc><iframe src="data:text/html;charset=utf-8,base64,JTNjc2NyaXB0JTNlYWxlcnQoIlhTUyIpO2hpc3RvcnkuYmFjaygpOyUzYy9zY3JpcHQlM2UiPjwv</abc> 
     </pqr> 
<xyz> 

"""" 

當我使用這個XML文件並在python中解析時,它顯示錯誤(不正確)。我怎樣才能解析這個XML文件或任何其他方法從這個文件中獲取數據。忽略XML標記之間的文本

+0

您應該在每行之前放置四個空格來格式化代碼。您也可以選擇它並單擊「{}」按鈕。在[Markdown編輯幫助](http://stackoverflow.com/editing-help)頁面提供更多有用的提示。 – 2011-04-20 09:36:50

回答

2

您可以先修改XML和使用CDATA來封裝格式不正確的XML

例如:

<xyz> 
     <pqr> 
     <abc><![CDATA[<a href="data:text/html;charset=utf-8,base64,JTNjc2NyaXB0JTNlYWxlcnQoIlhTUyIpO2hpc3RvcnkuYmFjaygpOyUzYy9zY3JpcHQlM2UiPjwvYT4=]]></abc> 
     </pqr> 
     <pqr> 
     <abc><![CDATA[<iframe src="data:text/html;charset=utf-8,base64,JTNjc2NyaXB0JTNlYWxlcnQoIlhTUyIpO2hpc3RvcnkuYmFjaygpOyUzYy9zY3JpcHQlM2UiPjwv]]></abc> 
     </pqr> 
<xyz> 

見:http://www.w3schools.com/xml/xml_cdata.asp

這個你可以使用Python中的XML解析器

+0

現在它的作品謝謝szymon – 2011-04-20 09:50:48

0

對你的XML片段進行快速的視覺檢查,以及兩件事情跳到我的身上:你的XML沒有形成良好:

  • 您的交易<xyz>元素缺少它的斜線:它應該是</xyz>
  • <a>和元素也未關閉。
1

<xyz>標籤不均衡(有兩個開放標籤)和test.xml線是虛假的。您的<a>標記未關閉,它的href屬性未被引用。和你的iframe標籤一樣。您正在使用的解析器應該告訴您它遇到錯誤的位置。修復它,然後你會很好去。

如果你想解析xml,首先你必須確保它是well formed XML。通常情況下,可以做一些小小的按摩來製作一個不可解析的代碼片段,以便您可以使用標準的解析器。