【问题标题】:append xml node using xmlserializer使用 xmlserializer 附加 xml 节点
【发布时间】:2014-02-19 21:55:07
【问题描述】:

我是一个解析初学者,我想在用户的帮助下创建一个 XML。但我无法附加 xml。你能帮我解决这个问题吗?很抱歉,我无法做到正确格式化代码。

public static String xmlSerialize(NewRecordDTO data) throws IllegalArgumentException, IllegalStateException, IOException
{

    File sdCard=Environment.getExternalStorageDirectory();
    File dir=new File(sdCard.getAbsolutePath()+"/backup");
    dir.mkdirs();
    File file=new File(dir,"diary.xml");
    FileOutputStream fos=new FileOutputStream( file, true);


    XmlSerializer xmlserializer=Xml.newSerializer();
    StringWriter writer=new StringWriter();
    xmlserializer.setOutput(writer);
    xmlserializer.startDocument("UTF-8", true);

    xmlserializer.startTag("", "LawyerRecords");
    xmlserializer.startTag("", "Record");

    xmlserializer.startTag("", "UID");
    xmlserializer.text(data.getUid());
    xmlserializer.endTag("", "UID");

    xmlserializer.startTag("", "PrevDate");
    xmlserializer.text(data.getPrev_date());
    xmlserializer.endTag("", "PrevDate");

    xmlserializer.startTag("", "CourtName");
    xmlserializer.text(data.getCaseName());
    xmlserializer.endTag("", "CourtName");

    xmlserializer.startTag("", "CaseNo");
    xmlserializer.text(data.getCaseNo());
    xmlserializer.endTag("", "CaseNo");

    xmlserializer.startTag("", "ForPartyName");
    xmlserializer.text(data.getForParty());
    xmlserializer.endTag("", "ForPartyName");

    xmlserializer.startTag("", "AgainstPartyName");
    xmlserializer.text(data.getAgainstParty());
    xmlserializer.endTag("", "AgainstPartyName");

    xmlserializer.startTag("", "Stage");
    xmlserializer.text(data.getStages());
    xmlserializer.endTag("", "Stage");

    xmlserializer.startTag("", "NextDate");
    xmlserializer.text(data.getNext_date());
    xmlserializer.endTag("", "NextDate");


    xmlserializer.endTag("", "Record");
    xmlserializer.endTag("", "LawyerRecords");
    xmlserializer.endDocument();

    String strData=writer.toString();
    fos.write(strData.getBytes());
    fos.close();

    return writer.toString();


}

Xml 现在给出如下输出;

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<LawyerRecords>
<Record>
  <UID>gshs</UID>
  <PrevDate>dhshsh</PrevDate>
  <CourtName>shshd</CourtName>
  <CaseNo>shsshhs</CaseNo>
  <ForPartyName>sgffsdddvd ddhdhd ddf</ForPartyName>
  <AgainstPartyName>sddhssh shshsd</AgainstPartyName>
  <Stage>sgshdhdhsg ggggdhhhh</Stage>
  <NextDate>20-2-2014</NextDate>
 </Record>
 </LawyerRecords>
 <LawyerRecords>
   <Record>
    <UID>suprito</UID>
    <PrevDate>dhshsh</PrevDate>
    <CourtName>shshd</CourtName>
    <CaseNo>shsshhs</CaseNo><ForPartyName></ForPartyName>
    <AgainstPartyName>sddhssh shshsd</AgainstPartyName>
    <Stage>sgshdhdhsg ggggdhhhh</Stage> 
    <NextDate>20-2-2014</NextDate>
  </Record>
</LawyerRecords>

我想要的输出是:

    <?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<LawyerRecords>
<Record>
  <UID>gshs</UID>
  <PrevDate>dhshsh</PrevDate>
  <CourtName>shshd</CourtName>
  <CaseNo>shsshhs</CaseNo>
  <ForPartyName>sgffsdddvd ddhdhd ddf</ForPartyName>
  <AgainstPartyName>sddhssh shshsd</AgainstPartyName>
  <Stage>sgshdhdhsg ggggdhhhh</Stage>
  <NextDate>20-2-2014</NextDate>
 </Record>

   <Record>
    <UID>suprito</UID>
    <PrevDate>dhshsh</PrevDate>
    <CourtName>shshd</CourtName>
    <CaseNo>shsshhs</CaseNo><ForPartyName></ForPartyName>
    <AgainstPartyName>sddhssh shshsd</AgainstPartyName>
    <Stage>sgshdhdhsg ggggdhhhh</Stage> 
    <NextDate>20-2-2014</NextDate>
  </Record>
</LawyerRecords>

【问题讨论】:

    标签: android xml xmlserializer


    【解决方案1】:

    您每次都为所有记录创建 xmlserializer.startTag("", "LawyerRecords");xmlserializer.endTag("", "LawyerRecords");,这就是您得到错误输出的原因..

    LawyerRecords 标记只能在开头和结尾添加,而不是所有记录。

    添加第一条记录时添加开始标签LawyerRecords,添加最后一条记录时添加结束标签LawyerRecords

    您可以通过以下方法解析 XML。

    1)SAX Parser

    2)DOM Parser

    3)XML Pull Parser

    您可以使用XmlSerializer 来生成 XML。

    这里是Generate XML Code

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多