加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在此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值相关联的多图.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读