SAX解析XML,与内存无关吗?
SAX
优点:Parsing速度快,内存占用不与XML的大小相联系(可以做到XML涨内存不涨)。
正确吗?
有例子来证明吗?
Thread t = new Thread()
{
public void run()
{
while (true)
{
long time = System.currentTimeMillis()
/ (1000 * 60);
float freeMemory = (float) Runtime.getRuntime()
.freeMemory() / 1024;
float totalMemory = (float) Runtime.getRuntime()
.totalMemory() / 1024;
logger.info("run time:" + time
+ "minutes:totalMemory:" + totalMemory
+ "K;freeMemory:" + freeMemory + "K");
try
{
Thread.sleep(30 * 1000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
};
t.start();
自己测测看啊。
现在遇到的是有个600M的XML文件要解析,如果用dom和VTD—XML,都会出现内存溢出,
如果采用SAX来解析,还会出现内存溢出吗?
将来会有更大的XML文件,内存溢出已经成为了瓶颈,用SAX能解决内存溢出吗?
http://news.newhua.com/news1/program_net/2009/410/0941010472H2D1I1783HJB2BK06G2I0KCA0EIDIBBE5K645DFICFBBD.html
看看这个 有例子。。。
这个问题 你要知道dom和sax的区别
sax是事件驱动的。就是简析一点 然后加载一点 不会一次全都加载到内存里,对于大型xml文档时没问题的
相关问答:
从数据库中查询一张表的数据
select 部门,姓名 from tb
如何才能生成下面的xml格式文件
<folder state="unchecked" label="全部">
<folder state="unchecked" isBra ......
我现在做接口导出,.NET平台,开发语言C#,想导出XML的文本格式。
想得到 <?xml version="1.0" encoding="GBK"?>
的编码格式!怎么设置?谢谢!急!
顶
只要保存为xml格式, ......
采用DOM 进行解析xml。要求将xml字串插入指定节点作为其子节点
比如:
原xml
<root>
</root>
要插入的xml字串
<a>test</a>
目的xml:
<root>
<a> ......
在Sqlserver数据库Northwinds中创建一个存储过程,
该存储过程有两个参数,nvarchar(5)类型的@customerID 是customers表的customerID, xml类型的参数@xmlCustOrder是输出参数,存储过程将根据orders和customers 表 ......
我有一个XML.想取
<Portfolio _Name="XXXX" _Id="AUD" >
中的属性_Id的值.但是用下面的语句好象不行.
XmlNode CId = xdoc_Msg.SelectSingleNode("/Portfolio");
&n ......