SAX(Simple API for XML)SAX的工作原理简单地说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束、文档(document)结束等地方时通知事件处理方法,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。SAX解析方式适用于大型文档,因为他的解析是逐行进行不用像DOM中那样为所有节点创建对象,这样效率大大提高,所以虽然它不是W3C标准,但它却得到了广泛认可。
1,这是需要解析的XML
<?xml version="1.0" encoding="UTF-8"?>
<packet className="" type="字符串定长报文">
<reference name="报文头" referenceFile="service/bizservice/host/head/snd_host_head1.packet"/>
<category name="body">
<field fieldDefaultValue="""" fieldDescription="省代码" fieldName="PROVINCECODE" fieldSubtle="false" fieldType="String" fieldValidation="false">
<valueExpr expr="PROVINCECODE"/>
<method className="StringMethod" methodName="fill">
<parameter name="fillchar" type="string" value="0"/>
<parameter name="len" type="int" value="2"/>
<parameter name="dir" type="string" value="左边"/>
</method>
<parameter name="位置" value="-1"/>
<parameter name="偏移量" value="0"/>
<parameter name="数据格式" value="9(2)"/>
</field>
<field fieldDefaultValue="""" fieldDescription="旧账号" fieldName="OLDACCTNO" fieldSubtle="false" fieldType="String" fieldValidation="false">
<valueExpr expr="OLDACCTNO"/>
<method className="StringMethod" methodName="fill">
<parameter name="fillchar" type="string" value=" "/>
<parameter name="len" type="int" value="23"/>
<parameter name="dir" type="string" value="右边"/>
</method>
<parameter name="位置" value="-1"/>
<parameter name="偏移量" value="0"/>
<parameter name="数据格式" value="X(23)"/>
</field>
<field fieldDefaultValue="""" fieldDescription="偏移量(界面隐藏)" fieldName="OFFSETPOS" fieldSubtle="false" fieldType="String" fieldValidation="false">
<valueExpr expr="OFFSETPOS"/>
<parameter name="位置" value="-1"/>
<parameter name="偏移量" value="0"/>
<parameter name="数据格式" value="9(3)"/>
</field>
<field fieldDefaultValue="""" fieldDescription="账号" fieldName="ACCTNO" fieldSubtle="false" fieldType="String" fieldValidation="false">
<valueExpr expr="ACCTNO"/>
<parameter name="位置" value="-1"/>
<parameter name="偏移量" value="0"/>
<parameter name="数据格式" value="9(17)"/>
</field>
<field fieldDefaultValue="""" fieldDescription="子账户类型" fieldName="SUBACCTTYPE" fieldSubtle="false" fieldType="String" fieldValidation="false">
<valueExpr expr="SUBACCTTYPE"/>
<parameter name="位置" value="-1"/>
<parameter name="偏移量" value="0"/>
<parameter name="数据格式" value="X(4)"/>
</field>
<field fieldDefaultValue="""" fieldDescription="册号" fieldName="VOLUMENO" fieldSubtle="false" fieldType="String" fieldValidation="false">
<valueExpr expr="VOLUMENO"/>
<method className="StringMethod" methodName="fill">
<parameter name="fillchar" type="string" value="0"/>
<parameter name="len" type="int" value="3"/>
<parameter name="dir" type="string" value="左边"/>
</method>
<parameter name="位置" value="-1"/>
<parameter name="偏移量" value="0"/>
<parameter name="数据格式" value="9(3)"/>
</field>
<field fieldDe