Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.html.getOneTagValue
on getOneTagValue (htmltext, tagname) { <<given the html text, extract the value of a specific tag <<if you ask for "title" you'll get the text between <title> and </title> <<it handles tags that contain values, so you can use it to extract the <body> of a page <<Fri, Nov 29, 1996 at 12:29:12 PM by DW local (lowertext = string.lower (htmltext), tagval = htmltext); tagname = string.lower (tagname); on deleteUpTo (s) { local (ix); ix = string.patternmatch (s, lowertext); if ix == 0 { return (false)}; tagval = string.delete (tagval, 1, ix); lowertext = string.delete (lowertext, 1, ix); return (true)}; if not deleteUpTo ("<" + tagname) { return ("")}; if not deleteUpTo (">") { return ("")}; local (ix = string.patternmatch ("</" + tagname + ">", lowertext)); if ix == 0 { return ("")}; return (string.mid (tagval, 1, ix - 1))} <<bundle <<test code <<dialog.alert ("*" + getOneTagValue ("xxx<Title val1 val2>hello!</title>yyy", "tiTle") + "*") <<dialog.alert ("*" + getOneTagValue ("<TItle>hello!</tiTle>", "tiTle") + "*")
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.