|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Hi there,
I'm fairly new to Ruby, previously I was an average programmer in Java, so it's all a bit foreign to me - especially XPath and cSS. I would be grateful if someone could give me a hand with a problem I'm having. I have a table which I'm trying to get the fields from in a certain way. The table is in the form: <table> <tr> <td>...stuff I don't want...</td> </tr> <tr> <td> <table> ------------rows i want <tr> <td> <table> <tr> <td>Field 1</td> <td>Field 2</td> </tr> </table> </td> <td>Field 3</td> <td>Field 4, Field 5</td> </tr> ------------end of rows i want </table> </td> </tr> </table> I have managed to get HPricot to parse the page and return that HTML for the table, however I'm struggling to get it into an array in the form ["Field 1", "Field 2", "Field 3", "Field 4", "Field 5"] for each row. I would have hoped there would be some kind of built in method for extracting data from a table, but I can't find one. Thanks again, look forward to a reply ![]() Adam -- Posted via http://www.ruby-forum.com/. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
For the innermost table, try:
eles = doc.search('table table table td') for the enclosing table, eles = doc.search('table table td') I don't suppose the semantics can be improved any -- like class names or ids? On Jan 6, 2008, at 11:13 AM, Adam Dullenty wrote: > Hi there, > > I'm fairly new to Ruby, previously I was an average programmer in > Java, > so it's all a bit foreign to me - especially XPath and cSS. I would be > grateful if someone could give me a hand with a problem I'm having. I > have a table which I'm trying to get the fields from in a certain way. > The table is in the form: > > <table> > <tr> > <td>...stuff I don't want...</td> > </tr> > <tr> > <td> > <table> > ------------rows i want > <tr> > <td> > <table> > <tr> > <td>Field 1</td> > <td>Field 2</td> > </tr> > </table> > </td> > <td>Field 3</td> > <td>Field 4, Field 5</td> > </tr> > ------------end of rows i want > </table> > </td> > </tr> > </table> > > I have managed to get HPricot to parse the page and return that HTML > for > the table, however I'm struggling to get it into an array in the form > ["Field 1", "Field 2", "Field 3", "Field 4", "Field 5"] for each > row. I > would have hoped there would be some kind of built in method for > extracting data from a table, but I can't find one. > > Thanks again, look forward to a reply ![]() > Adam > -- > Posted via http://www.ruby-forum.com/. > |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Steve Ross wrote:
> I don't suppose the semantics can be improved any -- like class names > or ids? Thanks for your reply. Afraid not, no handy names or ids. The code you posted I think I was doing anyway in a slightly different form as "elements2 = (elements/"table//table//td")". Since I posted last though I've managed to sort it out just by lots of array manipulation. Thanks for the though :-) Adam -- Posted via http://www.ruby-forum.com/. |
|
![]() |
| Outils de la discussion | |
|
|