0

我有一个 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>

现在我想获取所有项目、项目日期等都单独使用元素树。任何人都可以帮助我吗?

Rgds,

尼米

4

1 回答 1

5

正如 sje397 在评论中所写,如果您有选择,您应该重组它。将其全部放入项目标签中:

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

或使用属性:

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

这些在很大程度上是等效的(尽管属性以任何顺序出现,而标签可以通过 Schema/DTD 强制进入特定顺序),但您必须这样做,我认为这是一个品味问题。当然,您可以将两者混合使用,但这会使提取信息变得复杂(因为您需要使用单独的方法来获取属性与标签)。无论哪种方式,您只需获取一个项目标签,然后获取其所有 [children|attributes]。

If the xml absolutely has to stay this way, you might want to look into SAX parsers, which inherently preserve the order of the tags. It requires an event-based approach though.

于 2010-07-24T10:45:47.757 回答