用Ox解析xml的基础知识

时间:2013-11-03 13:50:19

标签: ruby xml xml-parsing

我正在尝试使用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指导。

0 个答案:

没有答案