我正在尝试使用ruby Ox库从XML中获取信息,正如其文档所述,它比Nokogiri和其他常用文件快得多。不幸的是,虽然由于xpath的简单性我可以使用Nokogiri,但我不是Ruby中的专业人员,无法弄清楚我在哪里出现哈希和Ox文档的错误,以及一些示例代码来解决问题真的很有帮助。
我在网上教程和its documentation is pretty concise/minimal的方式上找不到什么,虽然如果我对XML解析更熟悉,我就不需要为它拼写了。
我不是要求任何人在这里为我工作,但我真的不知道在哪里可以查找信息/指导/示例代码,而且我无法将Nokogiri用于我当前的程序。
使用simplexml我得到了一个Hash,我可以puts
出来:
xml_data = Net::HTTP.get_response(URI.parse(url)).body #grab XML
data = XmlSimple.xml_in(xml_data, { 'KeyAttr' => 'name'}) #parse XML to hash
使用我得到的是Ox::Document
只有puts
自己的名字:
xml_data = Net::HTTP.get_response(URI.parse(url)).body #grab XML
data = Ox.parse(xml_data) #parse XML (to hash??)
似乎没有任何这些库的导览,文档假设知道它的含义,没有链接到工作示例代码进行比较。
目前我的主要学习资源是在StackOverflow上看到这里的基础知识,但部分原因是由于短名称(谷歌/错别字与OS X混淆)我可以找到很少这些...它看起来很好设置做我想要的,但我只能找到一个问题,也突出了瘦文档,但试图写(不读)xml here。
我正在尝试从以下XML结构中获取名称(example xml) - 特别是对应的作者(或作者)的名称,由corresp
表示在XML中:
<pmc-articleset>
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" article-type="research-article">
<front>
<article-meta>
<article-id pub-id-type="pmid">17060631</article-id>
<article-id pub-id-type="pmc">1637560</article-id>
<article-id pub-id-type="publisher-id">3908</article-id>
<article-id pub-id-type="doi">10.1073/pnas.0603850103</article-id>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Andricioaei</surname>
<given-names>Ioan</given-names>
</name>
<xref rid="aff1" ref-type="aff"/>
<xref ref-type="corresp" rid="cor1">*</xref>
</contrib>
即。 Ioan Andricioaei在这个例子中。我认为正则表达式是一种丑陋的方法,因为它已被标记为......它是我正在制作的更大的努力/程序的一部分,并且非常感谢这里的一些XML指导。