summaryrefslogtreecommitdiff
path: root/examples/withAttribute.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/withAttribute.py')
-rw-r--r--examples/withAttribute.py50
1 files changed, 26 insertions, 24 deletions
diff --git a/examples/withAttribute.py b/examples/withAttribute.py
index 7fa2bc8..fc0c64a 100644
--- a/examples/withAttribute.py
+++ b/examples/withAttribute.py
@@ -1,24 +1,26 @@
-#
-# withAttribute.py
-# Copyright, 2007 - Paul McGuire
-#
-# Simple example of using withAttribute parse action helper
-# to define
-#
-data = """\
- <td align=right width=80><font size=2 face="New Times Roman,Times,Serif">&nbsp;49.950&nbsp;</font></td>
- <td align=left width=80><font size=2 face="New Times Roman,Times,Serif">&nbsp;50.950&nbsp;</font></td>
- <td align=right width=80><font size=2 face="New Times Roman,Times,Serif">&nbsp;51.950&nbsp;</font></td>
- """
-
-from pyparsing import *
-
-tdS,tdE = makeHTMLTags("TD")
-fontS,fontE = makeHTMLTags("FONT")
-realNum = Combine( Word(nums) + "." + Word(nums) ).setParseAction(lambda t:float(t[0]))
-NBSP = Literal("&nbsp;")
-patt = tdS + fontS + NBSP + realNum("value") + NBSP + fontE + tdE
-
-tdS.setParseAction( withAttribute(align="right",width="80") )
-for s in patt.searchString(data):
- print(s.value)
+#
+# withAttribute.py
+# Copyright, 2007 - Paul McGuire
+#
+# Simple example of using withAttribute parse action helper
+# to define
+#
+import pyparsing as pp
+
+data = """\
+ <td align=right width=80><font size=2 face="New Times Roman,Times,Serif">&nbsp;49.950&nbsp;</font></td>
+ <td align=left width=80><font size=2 face="New Times Roman,Times,Serif">&nbsp;50.950&nbsp;</font></td>
+ <td align=right width=80><font size=2 face="New Times Roman,Times,Serif">&nbsp;51.950&nbsp;</font></td>
+ """
+
+td, tdEnd = pp.makeHTMLTags("TD")
+font, fontEnd = pp.makeHTMLTags("FONT")
+realNum = pp.pyparsing_common.real
+NBSP = pp.Literal("&nbsp;")
+patt = td + font + NBSP + realNum("value") + NBSP + fontEnd + tdEnd
+
+# always use addParseAction when adding withAttribute as a parse action to a start tag
+td.addParseAction(pp.withAttribute(align="right", width="80"))
+
+for s in patt.searchString(data):
+ print(s.value)