我有一个xml,其形式如下
<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 Parser调用了相应的end元素?
例如,当我得到时,我开始一个计数器,当我得到它的相应而不是另一个时,我想结束计数器。
如果有DOM也不知道如何使用或做什么?
答案 0 :(得分:0)
可能你想使用堆栈。
当您检测到开始标记时,将适当的内容推送到堆栈上,当您检测到结束标记时,弹出堆栈。
然后当你得到一个结束标记时,堆栈顶部将始终包含相应的开始标记所放置的内容,除了弹出它以使对齐继续正确之外,你还可以用它做一些合适的事情。 。