簡體   English   中英

使用ElementTree進行XML閱讀

[英]XML reading using ElementTree

我有一個xml文件。

<Item>Item value</Item>
<Itemdate>24/07/2010</Itemdate>
<Total>1</Total>
<Itemcategory>Income</Itemcategory>
<GroupName>Salary</GroupName>
<EditId>undefined</EditId>

<Item>Item value</Item>
<Itemdate>24/07/2010</Itemdate>
<Total>1</Total>
<Itemcategory>Income</Itemcategory>
<GroupName>Salary</GroupName>
<EditId>undefined</EditId>

<Item>Item value</Item>
<Itemdate>24/07/2010</Itemdate>
<Total>1</Total>
<Itemcategory>Income</Itemcategory>
<GroupName>Trfr fm Savings</GroupName>
<EditId>undefined</EditId>

<Item>Item value</Item>
<Itemdate>24/07/2010</Itemdate>
<Total>1</Total>
<Itemcategory>Income</Itemcategory>
<GroupName>Dividend</GroupName>
<EditId>undefined</EditId>

<Item>Item value</Item>
<Itemdate>24/07/2010</Itemdate>
<Total>1</Total>
<Itemcategory>Income</Itemcategory>
<GroupName>Dividend</GroupName>
<EditId>undefined</EditId>

現在我想使用elementtree分別獲取所有項目,itemdate等。 有人可以幫助我嗎?

RGDS,

Nimmy

就像sje397在評論中寫道,如果可以選擇的話,應該對其進行重組。 要么全部放入item標簽:

<item>
    <value>...</value>
    <date>...</date>
    ...
</item>

或使用屬性:

<item value="..." date="..." ... />

這些在很大程度上是等效的(盡管屬性可以以任何順序出現,但是可以通過Schema / DTD將標簽強制為特定順序),但必須這樣做的例外,我認為這是一個問題。 當然,您可以將兩者混合使用,但這會使信息提取變得復雜(因為您將需要使用單獨的方法來獲取屬性與標簽)。 無論哪種方式,您都只會獲得一個item標簽,然后再獲取其所有[children | attributes]。

如果xml必須絕對保留這種方式,則您可能需要研究SAX解析器,該解析器固有地保留了標簽的順序。 但是,它需要基於事件的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM