| 1 | from genshi.builder import tag |
|---|
| 2 | from genshi.input import HTML |
|---|
| 3 | from genshi.path import Path |
|---|
| 4 | from genshi.filters.transform import Transformer |
|---|
| 5 | |
|---|
| 6 | html = HTML(''' |
|---|
| 7 | <tr> |
|---|
| 8 | <th class="col1"> |
|---|
| 9 | <label for="field-cc">Cc:</label> |
|---|
| 10 | </th> |
|---|
| 11 | <td class="col1"> |
|---|
| 12 | <span> |
|---|
| 13 | <input type="text" id="field-cc"/> |
|---|
| 14 | </span> |
|---|
| 15 | </td> |
|---|
| 16 | <th class="col2"> |
|---|
| 17 | </th> |
|---|
| 18 | <td class="col2"> |
|---|
| 19 | </td> |
|---|
| 20 | </tr>''') |
|---|
| 21 | |
|---|
| 22 | #print Path('./').select(html) |
|---|
| 23 | #print html.select('./tr') |
|---|
| 24 | |
|---|
| 25 | transtream = html | Transformer('.')\ |
|---|
| 26 | .select("td[2]").append("Bbbb").end()\ |
|---|
| 27 | .select('th[2]').append("Aaaa") |
|---|
| 28 | print transtream.select(".") |
|---|
| 29 | |
|---|
| 30 | |
|---|
| 31 | html2 = HTML(''' |
|---|
| 32 | <form action="/newticket" method="post" id="propertyform"> |
|---|
| 33 | <fieldset id="properties"> |
|---|
| 34 | <table> |
|---|
| 35 | <tr> |
|---|
| 36 | <th class="col1"> |
|---|
| 37 | <label for="field-cc">Cc:</label> |
|---|
| 38 | </th> |
|---|
| 39 | <td class="col1"> |
|---|
| 40 | <span> |
|---|
| 41 | <input type="text" id="field-cc"/> |
|---|
| 42 | </span> |
|---|
| 43 | </td> |
|---|
| 44 | <th class="col2"> |
|---|
| 45 | </th> |
|---|
| 46 | <td class="col2"> |
|---|
| 47 | </td> |
|---|
| 48 | </tr> |
|---|
| 49 | </table> |
|---|
| 50 | </fieldset> |
|---|
| 51 | </form> |
|---|
| 52 | ''') |
|---|
| 53 | print "-"*5 |
|---|
| 54 | transtream = html2 | Transformer('fieldset[@id="properties"]/table/tr')\ |
|---|
| 55 | .select("td[2]").append("Bbbb").end()\ |
|---|
| 56 | .select('th[2]').append("Aaaa") |
|---|
| 57 | print transtream.select('//fieldset[@id="properties"]/table/tr') |
|---|