我是使用 Java 和 SAX 解析器进行 XML 解析的新手。我有一个非常大的 XML 文件,由于它的大小,我被建议使用 SAX 解析器。我已经完成了部分任务的解析,它按预期工作。现在,XML 作业剩下一项任务:根据用户的请求删除/更新一些节点。
我可以通过名称找到所有标签,更改它们的data
属性等。如果我能够使用 SAX 执行这些操作,也可以删除。
示例 XML 描述了某些情况下的一些功能。用户的输入是“案例”的名称(case1
, case2
)。
<ruleset>
<rule id="1">
<condition>
<case1>somefunctionality</case1>
<allow>true</allow>
</condition>
</rule>
<rule id="2">
<condition>
<case2>somefunctionality</case2>
<allow>false</allow>
</condition>
</rule>
</ruleset>
如果用户想要删除其中一种情况(例如case1
)而不仅仅是标签,则必须删除case1
完整的标签。rule
如果case1
要删除,XML 将变为:
<ruleset>
<rule id="2">
<condition>
<case2>somefunctionality</case2>
<allow>false</allow>
</condition>
</rule>
</ruleset>
我的问题是,这可以使用 SAX 完成吗?此时我不能使用 DOM 或任何其他解析器。只有其他选项更糟糕:字符串搜索。如何使用 SaxParser 完成?