3

我已经尝试了很多小时,并且浏览了 Google 上所有可能的示例,但我无法弄清楚如何在 Android 上使用 simplexml 从这个 XML 文件中获取属性。

XML 文件:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Service>
<Facture FactNo="" 
 NoAppel="6" 
 ProjDate="2012-04-01"
 NomProj="MR. H. BLOOM"
 AddProj="20, GARDEN ROAD" 
 VilleProj="WESTMOUNT, QC."
 CPProj="" ContProj="M. BLOOM" 
 TelProj="(555) 555-9571" 
 SysMarque="" 
 SysMod="" 
 SysType="" 
 SysSerie="" 
 SysNo=""
 SysTemp=""
 Tension=""
 Phase="0"
 Halo="False"
 POFact=""
 NomFact=""
 AdrsFact="" 
 VilleFact=""
 CPFact=""
 TelFact=""
 FaxFact=""
 Trouble=""
 TbLock="False"
 TDesc=""
 TRec=""
 Depl="False"
 TM="False" 
 NoTM=""
 TPA="False"
 NoTPA=""
 CS="False"
 NoCS=""
 Estim="False"
 NoEstim=""
 Proj="False"
 NoProj=""
 Term="True" 
 Incompl="False"
 Garant="False"
 NoGarant=""
 Annexe="False"
 NoAnnexe=""
 NoContrat="00007"
 MainDoeuvre="0,0000" 
 Materiel="0,0000"
 SousTot=""
 TPS="0,0000"
 TPSTaux="0.05"
 TVQ="0,0000"
 TVQTaux="0.085"
 Total="0,0000" />
<Pieces>
<Piece Qty="10" Desc="test" PO="12345678" PrixUnit="0.0000" Montant="0.0000" />
<Piece Qty="25" Desc="testitem2" PO="33333" PrixUnit="22.0000" Montant="220.0000"            />
<Piece Qty="35" Desc="testitem3" PO="44444" PrixUnit="33.0000" Montant="440.0000"     />
</Pieces>
<Techs>
<Tech Nom="Bobby" Reg="1" TD="2" Taux="3.5000" Montant="0.0000" Lock="False" Date="2012-04-01   
10:49:00" />
</Techs>
<Sign />
<Pics />
</Service>

XML 文件是第三方的,所以我无法修改它。

服务等级(仅显示 Piece):

    //Liste Pieces
    @ElementList(name="Piece", inline=true)
    @Path("Pieces")
    private List<PieceXML> pieces;

    public List<PieceXML> getpieces()
    {
        return pieces;
    }       

片断类:

@Root(name="Piece")
public class PieceXML 
{

@Attribute
private Double Qty;
@Attribute
private String Desc;
@Attribute
private String PO;
@Attribute
private Double PrixUnit;
@Attribute
private Double Montant;
 ...}

我真正需要的是从 Piece 中的属性值构建一个数组,但真的不知道该怎么做。任何帮助将不胜感激。提前致谢。

4

1 回答 1

1

好的,终于自己动手了。发现这很简单。我一直有它但无法让它工作,因为我遇到了节点的问题,这些节点的名称与我的应用程序的现有类完全相同,这导致在读取我返回的对象列表时获得空值。在那种情况下,我不得不使用

@Path(pathname) 

使用完整路径调用,即

@Path("Service/Pieces").  

然后我可以得到我的

List<PieceXML>

对象并填充我的 ArrayLists。

于 2012-04-29T13:24:31.823 回答