我有一个应用程序,它生成包含元素列表的非常繁重的xml文件,我必须分几个步骤向其中添加元素,并将它们保存在硬盘上。例如,在第一次迭代中,将生成完整的文件:
<File>
<Header>
<Date>yyyy-MM-dd</Date>
<Uuid>335773a6-1ee3-4ef8-95dd-65abed4226b4 </Uuid>
<!-- Other params -->
</Header>
<Body>
<!-- Other params -->
<Users>
<User>
<Id>1</Id>
<Name>John</Name>
<Surname>Doe</Surname>
<Mail>john@mail.com</Mail>
<!-- Other params -->
</User>
<User>
<Id>2</Id>
<Name>John</Name>
<Surname>Doe</Surname>
<Mail>john@mail.com</Mail>
<!-- Other params -->
</User>
<!-- Add more items here-->
</Users>
</Body>
</File>
在下面的迭代中,添加了更多的元素(在本例中,只增加了两个用户):
<File>
<Header>
<Date>yyyy-MM-dd</Date>
<Uuid>335773a6-1ee3-4ef8-95dd-65abed4226b4 </Uuid>
<!-- Other params -->
</Header>
<Body>
<!-- Other params -->
<Users>
<User>
<Id>1</Id>
<Name>John</Name>
<Surname>Doe</Surname>
<Mail>john@mail.com</Mail>
<!-- Other params -->
</User>
<User>
<Id>2</Id>
<Name>John</Name>
<Surname>Doe</Surname>
<Mail>john@mail.com</Mail>
<!-- Other params -->
</User>
<User>
<Id>3</Id>
<Name>John</Name>
<Surname>Doe</Surname>
<Mail>john@mail.com</Mail>
<!-- Other params -->
</User>
<User>
<Id>4</Id>
<Name>John</Name>
<Surname>Doe</Surname>
<Mail>john@mail.com</Mail>
<!-- Other params -->
</User>
<!-- Add more items here-->
</Users>
</Body>
</File>
由于文件可能很长,我想避免内存问题,我可以添加新的元素在正确的位置没有完全加载到内存文件?
2条答案
按热度按时间i86rm4rw1#
一种解决方案是将文档维护为两个文件:大纲文件
和有效载荷文件:
然后可以简单地附加到负载文件。大纲文件需要声明实体引用
&users;
在它的dtd里。每当您使用一致的xml解析器读取大纲文件时,有效负载文件将自动拉入。这在javascript等不支持xml外部实体的环境中不起作用。有些站点还具有安全设置,以防止使用外部实体。
um6iljoc2#
您可能正在寻找xml流api。