如何在此xml文件上使用SAX
发布时间:2020-12-16 22:55:08 所属栏目:百科 来源:网络整理
导读:我有一个 XML文件,我试图用Sax解析(这是我第一次这样做).我已经研究过如何实现解析器,这一切都有意义,但我不确定解决这个问题的最佳方法. 我有分散的相关数据(两个事实由FactKey关联).在下面的示例中,Foo的值为5.34. Sax在每个新元素上调用StartElement(),因
我有一个
XML文件,我试图用Sax解析(这是我第一次这样做).我已经研究过如何实现解析器,这一切都有意义,但我不确定解决这个问题的最佳方法.
我有分散的相关数据(两个事实由FactKey关联).在下面的示例中,Foo的值为5.34. Sax在每个新元素上调用StartElement(),因此这是对Facts的一次调用和对Value的一次调用….所以我的问题是:我是否必须从Facts元素存储FactKey,以便我可以将它与Value元素相关联在下一次传球中,或萨克斯有没有办法自动完成? 是否有任何设施用于将两个不同的事实与相同的FactKey相关联,也许我使用DOM而不是Sax?或者这只是一厢情愿的想法,我实际上只需要维护一个多图或其他东西. ... <Facts FactKey="2832154551" FieldId="73250"> <Value xsi:type="xs:double">5.3499999</Value> </Facts> ... <Facts FactKey="2832154551" FieldId="410288"> <Value xsi:type="xs:string">Foo</Value> </Facts> 解决方法
对于您的第一个问题:是的,您必须维护解析器使用的任何上下文(即,您必须跟踪您在Facts元素中/不在事实元素中的事实).
至于按键关联不同的Fact元素,是的,有警告.您可以将文件加载到DOM中(假设您有足够的内存),然后使用XPath提取具有特定FactKey的所有元素. //Facts[@FactKey="2832154551"] 但是,如果您想要读取文件并使用相同的键累积Facts,那么多图是您最好的选择. DOM解析器可能仍然有用,因为您可以使用将字符串键与Element值相关联的多图. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |