2013-02-07 3 views
0

Допустим, я побежал код ниже:R - Простой XML синтаксический

url.df_1 = htmlTreeParse(url_1, useInternalNodes = T) 

и получил ниже htmlTree:

  <!-- ******************* related ******************* --> 
    <div class="more-related-box"> 

    <div id="app_related"> 
     <h3>Customers Also Bought</h3> 
      <ul> 
<li><a href="/app/ios/flick-golf/" title="Flick Golf!"><img src="http://a2.mzstatic.com/us/r1000/067/Purple/v4/25/a8/91/25a891df-fed4-9dc4-0d86-1c8f5acf893f/mzl.fcctkywr.75x75-65.jpg" class="app_icon"><span class="app_name">Flick Golf!</span><span class="category">Games</span></a></li> 

       <li><a href="/app/ios/minecraft-pocket-edition/" title="Minecraft – Pocket Edition"><img src="http://a1.mzstatic.com/us/r1000/070/Purple2/v4/3f/56/07/3f56074b-af27-8ba3-7ef8-c97314c13ee7/mzl.rfhcaysw.75x75-65.jpg" class="app_icon"><span class="app_name">Minecraft – Pocket Edition</span><span class="category">Games</span></a></li> 

То, что я хочу, чтобы захватить сверху является "Флик-гольф" и «Minecraft -карманное издание". (Таким образом, выше, является частью htmltree, и я хочу, чтобы захватить эти имена и хотят, чтобы сделать их в виде списка или dataframe в конце концов.)

До сих пор я попробовал это (и куча других)

getNodeSet(url.df_1, "//div[@id = 'app_related']//h3 ") 

Но я закончил получать

[[1]] 
<h3>Customers Also Bought</h3> 

attr(,"class") 

Любой совет? Спасибо!

+0

Вы должны дать нам правильный XML. Опубликованный недействителен. –

+0

Также вопрос не ясен. Вы хотите получить значение атрибута title для узла a? или что-то другое? –

+0

Спасибо, я отредактировал мой вопрос. Я хотел бы записать название. – user1486507

ответ

1

Прежде всего вам нужно убедиться, что ваш xml хорошо сформирован. Я предполагаю, что вы позаботитесь об этом. После этого вам просто нужно правильно XPath arguement, что в вашем случае будет //li/a/@title

> str <- '<div class="more-related-box"> 
+ <div id="app_related"> 
+ <h3>Customers Also Bought</h3> 
+ <ul> 
+ <li> 
+ <a href="/app/ios/flick-golf/" title="Flick Golf!"> 
+ <img src="http://a2.mzstatic.com/us/r1000/067/Purple/v4/25/a8/91/25a891df-fed4-9dc4-0d86-1c8f5acf893f/mzl.fcctkywr.75x75-65.jpg" class="app_icon" /> 
+ <span class="app_name">Flick Golf!</span> 
+ <span class="category">Games</span> 
+ </a> 
+ </li> 
+ <li> 
+ <a href="/app/ios/minecraft-pocket-edition/" title="Minecraft – Pocket Edition"> 
+ <img src="http://a1.mzstatic.com/us/r1000/070/Purple2/v4/3f/56/07/3f56074b-af27-8ba3-7ef8-c97314c13ee7/mzl.rfhcaysw.75x75-65.jpg" class="app_icon" /> 
+ <span class="app_name">Minecraft – Pocket Edition</span> 
+ <span class="category">Games</span> 
+ </a> 
+ </li> 
+ </ul> 
+ </div> 
+ </div>' 
> doc <- xmlParse(str) 
> getNodeSet(doc, "//li/a/@title") 
[[1]] 
     title 
"Flick Golf!" 
attr(,"class") 
[1] "XMLAttributeValue" 

[[2]] 
         title 
"Minecraft – Pocket Edition" 
attr(,"class") 
[1] "XMLAttributeValue" 

attr(,"class") 
[1] "XMLNodeSet" 
Смежные вопросы