我想要获取一个庞大的XML文件,一个creative-commons许可的字典,并将其放入数据库中。问题是没有关于该文件的文档。这个xml文件中有数十万个单词,其中大部分是这样的,
<entry key="a)rxiereu/s" type="main" id="n5063">
<form opt="n"><orth extent="full" lang="greek" opt="n">a)rxiereu/s</orth></form>
<sense level="0" n="0" id="n5063.0" opt="n"><trans opt="n"><tr opt="n">an arch-priest, chief-priest</tr></trans>, <usg opt="n">Hdt.</usg> [...] </sense>
</entry>有没有办法比较所有的<entry>标签和它们的属性?例如,几乎所有的<entry>标签都有<type="main">,有没有方法可以发现其他类型的属性是否有不同于main的值?还是整个文档中entry标记使用的所有属性和sense标记的所有属性?
最后,我真正熟悉的是基于网络的技术,HTML,Javascript,PHP等等,所以我自然会认为在MySQL数据库中获取这些内容的最好方法是编写一个php脚本,这一定是正确的吗?
发布于 2011-12-28 15:24:36
探索此文件中的内容的一个好方法是使用XQuery。例如,问题的答案是“是否有任何方法可以发现类型的任何其他属性是否具有main以外的值?”可以通过以下查询来回答
distinct-values(//@type)发布于 2011-12-28 14:24:08
您需要的是一个XML解析器。对于C++来说,这是一个很小的XML。但既然您熟悉Web技术,我建议您使用PHP。
看一看Simple XML on PHP.net
这个页面描述了如何获取元素SimpleXMLElement::attributes的属性
我想知道你是否会解析一次XML,将其存储在数据库中,或者需要重复解析。在前一种情况下,您甚至可以尝试TinyXML
https://stackoverflow.com/questions/8652460
复制相似问题