withAttribute.py 912 B

1234567891011121314151617181920212223242526
  1. #
  2. # withAttribute.py
  3. # Copyright, 2007 - Paul McGuire
  4. #
  5. # Simple example of using withAttribute parse action helper
  6. # to define
  7. #
  8. import pyparsing as pp
  9. data = """\
  10. <td align=right width=80><font size=2 face="New Times Roman,Times,Serif">&nbsp;49.950&nbsp;</font></td>
  11. <td align=left width=80><font size=2 face="New Times Roman,Times,Serif">&nbsp;50.950&nbsp;</font></td>
  12. <td align=right width=80><font size=2 face="New Times Roman,Times,Serif">&nbsp;51.950&nbsp;</font></td>
  13. """
  14. td, tdEnd = pp.makeHTMLTags("TD")
  15. font, fontEnd = pp.makeHTMLTags("FONT")
  16. realNum = pp.pyparsing_common.real
  17. NBSP = pp.Literal("&nbsp;")
  18. patt = td + font + NBSP + realNum("value") + NBSP + fontEnd + tdEnd
  19. # always use addParseAction when adding withAttribute as a parse action to a start tag
  20. td.addParseAction(pp.withAttribute(align="right", width="80"))
  21. for s in patt.searchString(data):
  22. print(s.value)