Monday, November 08, 2010 at 12:07 AM.

system.verbs.builtins.xml.getAlternateLinks

on getHtmlLinks (urlHtml, adrtable) {
	<<Changes
		<<11/4/09; 5:29:21 PM by DW
			<<Gather all the <link rel>s out of the HTML text in a table.
	local (s = tcp.httpreadurl (urlHtml, ctFollowRedirects:5), ix, ixright, xmltext, xstruct);
	new (tabletype, adrtable);
	loop {
		ix = string.patternmatch ("<link rel=", string.lower (s));
		if ix == 0 {
			return (false)};
		s = string.delete (s, 1, ix-1);
		ixright = string.patternmatch (">", s);
		xmltext = string.mid (s, 1, ixright);
		try {
			local (xstruct);
			xml.compile (xmltext, @xstruct);
			local (adrlink = xml.getaddress (@xstruct, "link"));
			local (adratts = @adrlink^.["/atts"]);
			adrtable^.[adratts^.href] = adratts^};
			<<scratchpad.xstruct = xstruct
		s = string.delete (s, 1, ixright)}}
<<bundle //test code
	<<getHtmlLinks ("http://unberkeley.com", @scratchpad.links2)



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.