0

我对 XML 不是很熟悉,并且正在学习 ruby​​。我遇到的问题是我使用的 xml 文件的格式与所有示例不同。我正在尝试对我们 Nokogiri,因为这样做似乎很受欢迎。

我的 XML 文件来自一个 url,看起来像这样

<guides of="XML" rtn="5" tot="10" cv="1" a="XPU_NextStep" id="0" " w="" q="" g="Echo" gr="HomeRec" gt="doc" js_q="" token="0:1QeU|5iG|557|1Y7p|4rE|">
  <r t="Orbelle Toddler Bed - Cappuccino" g="Echo" s="1" rk="1" pt="0" at="0" pr="0" ar="0">
   <a n="onsale" v="Yes"/>
   <a n="SKU" v="OTI041"/>
    <display>
      <thumb n="imageName" v="http://images/mgen/master:OTI041.jpg?is=400,400"/>
      <labels>
        <l n="salePrice" v="Sale Price: 69.98"/>
        <l n="catName" v="Toddler Beds"/>
        <l n="id" v="OTI041"/>
      </labels>
    </display>
  </r>
  <r t="The Orbelle Contemporary Solid Wood Toddler Bed - Cappuccino" g="XPU_NextStep" tm="bed, toddler, toddler bed, the orbelle contemporary solid wood toddler bed cappuccino, toddler beds" s="0.4688" rk="2" pt="873" at="0" pr="0" ar="0">
   <a n="availableDomain" v="ToddlerBeds,KidsFurnitureMart"/>
   <a n="deptName" v="Kids"/>
   <a n="onsale" v="Yes"/>
   <a n="SKU" v="OTI029"/>
   <a n="nicheCategory" v="Kids Beds,Standard Toddler Beds"/>
    <display>
     <thumb n="imageName" v="http://images/mgen/master:OTI029.jpg?is=400,400"/>
      <labels>
        <l n="salePrice" v="Sale Price: 59.98"/>
        <l n="catName" v="Toddler Beds"/>
      </labels>
    </display>
 </r>

我正在尝试从每个下方抓取 v="OTI041"

现在我只能打开文件-

doc = Nokogiri::XML(open("http://www.somesite.com"))
4

1 回答 1

1

使用这个 XPath:

doc.xpath('//r/a[@n="SKU"]/@v').each {|x| puts x.value }

另外,请注意您在第一行有语法错误,在... id="0" " ...

于 2013-07-31T13:18:17.970 回答