Hi, Minero Aoki <aamine / cd.xdsl.ne.jp> wrote: > > Does "xmlscan" implement XPath, and where can I get it? > > http://www.blue.sky.or.jp/atelier/ruby/xmlscan-0.0.10.tar.gz I tried to translate README into English. It has probably some mistakes, but it is better than nothing for non-Japanese speaker, I think. --README---------------------------------------------------------- `xmlscan' is a collection of XML-related technology implemented Ruby. The goal is to construct XML application with only Ruby. It's still under construction. xmlscan.rb: class XMLScanner Class for parsing XML document. It does not use any extended library, just only Ruby. module XMLScanner::Loose Mix-in which make scanner ignore any error. module XMLScanner::Recoverable Mix-in which make scanner raise ParseError and continue parsing. module XMLScanner::ExternalEntity Mix-in to parse external parsed entity. class LooseXMLScanner class RecoverableXMLScanner XMLScanner including {Loose|Recoverable}. class WellFormedXMLScanner XMLScanner with some well-formed contraint. class XMLScannerWithNamespace WellFormedXMLScanner with supporing XML Namespace. htmlscan.rb: module XMLScanner::HTML Mix-in to parse HTML. class HTMLScanner class LooseHTMLScanner class RecoverableHTMLScanner XMLScanner including HTML. It is a little faster than html-parser/sgml-parser.rb with some HTML docuemnts. total total bytes lines total msec scanner files size lines /file /file seconds /file at once (read): SGMLParser 8631 92260346 1937688 10689.4 224.5 3325.64 385.31 LooseHTMLScanner 8631 92260346 1937688 10689.4 224.5 2247.90 260.44 SGMLParser (max) -- -- 453969 15215 -- 54380.00 LooseHTMLScanner (max) -- -- 453969 15215 -- 11860.00 by line (gets): SGMLParser 8631 92260346 1937688 10689.4 224.5 3595.33 416.56 LooseHTMLScanner 8631 92260346 1937688 10689.4 224.5 2867.39 332.22 SGMLParser (max) -- -- 453969 15215 -- 20080.00 LooseHTMLScanner (max) -- -- 453969 15215 -- 15210.00 xmltoken.rb: module XMLScanner::Tokenizer pull-based XMLScanner(?). Under construction. xmldtd.ry: class XMLDTDScanner class for parsing DTD. You need Racc. Under construction. xpath.ry: module XPath XPath processor for Ruby. class XPath::Compiler class for compiling XPath expression into Ruby script. you need Racc. xpath.rb: racc -E -o xpath.rb xpath.ry xpathtree.rb: Sample implementation of XPath data model. It's just sample. xpath-dom.rb: XPath supporting DOM. It uses Adapter pattern to separate processing module and data structure, but it is too slow (;_; It might be rejected. You can redistribute/modify it under the same term as Ruby. -=====--===- UENO Katsuhiro @ BLUE-SKYNET <katsu / blue.sky.or.jp> -== ---=----===- http://www.blue.sky.or.jp/ -== --README---------------------------------------------------------- Hope this help. TAKAHASHI Masayoshi (maki / inac.co.jp) # ``Whatever else you think about, think about interoperability. # Don't think about standards yet.'' -- Clay Shirky