Xml 使用SAX获取元素的相应结尾
我有一个xml,它的形式如下Xml 使用SAX获取元素的相应结尾,xml,sax,Xml,Sax,我有一个xml,它的形式如下 <brick type="Func" gid="29" fname="removeContexts" fns="dflt"> <viewData x="470" y="45"/> <arg> <brick
<brick type="Func" gid="29" fname="removeContexts" fns="dflt">
<viewData x="470" y="45"/>
<arg>
<brick type="Func" gid="4" fname="useOneAsMany" fns="dflt" object_uid="r1">
<viewData x="335" y="91"/>
<arg>
<brick type="Src" gid="0" path="/OrderCreate/Header/To/PartnerInformation/PartnerIdentifier">
<viewData x="219" y="29"/>
</brick>
</arg>
<arg pin="1">
<brick type="Func" gid="3" fname="concat" fns="dflt">
<viewData x="190" y="80"/>
<arg>
<brick type="Func" gid="13" fname="const" fns="dflt" object_uid="r0">
<viewData x="50" y="83"/>
<bindings>
<param name="value">
<value>ALL</value>
</param>
</bindings>
</brick>
</arg>
<arg pin="1">
<brick object_uid="r0"/>
</arg>
<bindings>
<param name="delimeter">
<value/>
</param>
</bindings>
</brick>
</arg>
<arg pin="2">
<brick type="Func" gid="23" fname="const" fns="dflt">
<viewData x="190" y="137"/>
<bindings>
<param name="value">
<value>-other-</value>
</param>
</bindings>
</brick>
</arg>
</brick>
</arg>
</brick>
全部的
-其他-
正如您所看到的,我们有多个标签,具有相同的名称,深度不限。在start元素中,我检查一些东西。如何知道已使用SAX解析器调用了相应的结束元素
例如,当我得到一个计数器时,我启动一个计数器,当我得到它对应的而不是另一个计数器时,我想结束计数器
如果使用DOM,你知道如何使用或做什么吗 您可能希望使用堆栈 当检测到开始标记时,将适当的内容推到堆栈上,当检测到结束标记时,弹出堆栈 然后,当您得到一个结束标记时,堆栈的顶部将始终包含相应的开始标记放在那里的内容,除了弹出它以使对齐继续正确外,您还可以对它执行适当的操作