我正在将XML文件解析为类的实例。单个项目如下所示:
<item>
<g:id>xx</g:id>
<title>xxx</title>
<description>xxx</description>
<g:product_type>xxx</g:product_type>
<link>xx</link>
<g:image_link>xxx</g:image_link>
<g:condition>xxx</g:condition>
<g:availability>xxx</g:availability>
<g:price>100</g:price>
<g:brand>xxx</g:brand>
<g:gtin/>
<g:mpn>xx</g:mpn>
<g:shipping>
<g:country>xx</g:country>
<g:service>xx</g:service>
<g:price>10</g:price>
</g:shipping>
<pubDate>xxx</pubDate>
</item>
解析方法:
if (xpp.getName().equalsIgnoreCase("item")) {
insideItem = true;
i = new Item();
} else if (xpp.getName().equalsIgnoreCase("g:id")) {
if (insideItem)
i.setmID(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("title")) {
if (insideItem)
i.setmTitle(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("description")) {
if (insideItem)
i.setmDescription(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("g:product_type")) {
if (insideItem)
i.setmProductType(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("g:image_link")) {
if (insideItem)
i.setmPictureLink(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("g:condition")) {
if (insideItem)
i.setmCondition(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("g:availability")) {
if (insideItem)
i.setmAvailability(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("g:price")) {
if (insideItem)
i.setmPrice(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("g:brand")) {
if (insideItem)
i.setmBrand(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("g:mpn")) {
if (insideItem)
i.setmMpn(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("g:country")) {
if (insideItem)
i.setmShippingCountry(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("g:service")) {
if (insideItem)
i.setmService(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("g:price")) {
if (insideItem)
i.setmShippingCosts(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("g:pubDate")) {
if (insideItem)
i.setMpubDate(xpp.nextText());
}
我将XML文件的每个属性解析为该类的一个字段。但是,在解析属性“ g:price”时,我遇到了一些麻烦。我知道这是因为我有两个具有相同名称的属性。
什么是区分项目价格和价格的合适方法? 有人可以为我提供如何更改方法的想法吗?
请注意,我知道使用switch语句会更有效,只是想获得xml的经验。