ruby Ox ライブラリを使用して XML から情報を取得しようとしています。このライブラリは、そのドキュメントによると、Nokogiri や一般的に使用されている他のライブラリよりもはるかに高速です。残念ながら、xpath の単純さのおかげで Nokogiri を使用できましたが、私は Ruby のプロではないので、ハッシュと Ox ドキュメントのどこが間違っているのかわかりません。本当に役に立ちます。
私はオンラインチュートリアルの方法でほとんど見つけることができず、そのドキュメントはかなり簡潔/最小限ですが、一般的なXML解析に慣れていれば、詳しく説明する必要はありません.
ここで私の仕事を誰かに頼んでいるわけではありませんが、どこで情報/ガイダンス/サンプル コードを探すことができるか本当にわかりません。また、現在のプログラムで Nokogiri を使用することはできません。
simplexml を使用して、ハッシュを取得し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 を使用すると、独自の名前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 で機能している基礎を確認することですが、短い名前 (Google/typos は OS X と混同されます) のせいで、これらのほとんどを見つけることができません... うまくセットアップされているように見えます私がやりたいことをするために、しかし、薄いドキュメントを強調しているが、xmlをここに書き込もうとしている(読んでいない)質問しか見つけることができません。
次の XML 構造 ( example xml )から名前を取得しようとしています。具体的には、XMLで示されている対応する作成者 (または作成者)の名前です。corresp
<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ガイダンスを本当に感謝しています.