私はenvelope
の束を持つXMLを持っています。それぞれの内部は配列です。配列の各行には2つの要素があります。最初のものは識別子で、2番目のものは取りたいテキストです。私は正しい値をつかむことができるように正しい行を識別するために行の最初の値が必要です。xml2:同じ行に指定したテキストの後に配列内のテキストを取得する
以下の例では、コード610954
で示された行に「食品」があります。私はc('pizza', 'burger')
(このコードの後に2つの要素をつかむしたい。同様に、コード605380
で示される「ドリンク」がある。私はc('coke', 'pepsi')
をつかむしたい。どのように私はこれを行うにはXML2パッケージを使用することができますか?
library(xml2)
library(magrittr)
myxml <- read_xml('
<inside>
<envelope>
<card-entries type="array">
<card-entry>
<card-id type="integer">605380</card-id>
<value>coke</value>
</card-entry>
<card-entry>
<card-id type="integer">610954</card-id>
<value>pizza</value>
</card-entry>
</card-entries>
</envelope>
<envelope>
<card-entries type="array">
<card-entry>
<card-id type="integer">605380</card-id>
<value>pepsi</value>
</card-entry>
<card-entry>
<card-id type="integer">610954</card-id>
<value>burger</value>
</card-entry>
</card-entries>
</envelope>
</inside>
'
)
## as far as I can parse it (but not specific enough)
myxml %>%
xml_find_all('//envelope/card-entries[@type="array"]/card-entry') %>%
xml_text()
food <- -CODE THAT GIVES HERE c('pizza', 'burger')- # 610954
drinks <- -CODE THAT GIVES HERE c('coke', 'pepsi')- # 605380
ありがとうございました。すべての選択肢が私に全体的な理解を深めてくれます。 –