Xml 使用sax和webcrawler的站点地图

Xml 使用sax和webcrawler的站点地图,xml,sitemap,sax,jtidy,Xml,Sitemap,Sax,Jtidy,大家好,这是我的第一个问题,我不是程序员 我想生成一个网站地图。我正在用webcrawler(crawler.dev.java.net)爬行一个网站。 有没有办法对我得到的数据使用sax解析器 我还使用了jtidy,并将主页html数据转换为xml文件 我很困惑有这么多sax解析器,我不知道它们之间的区别以及选择哪一个 我想访问html标记的属性,但我不能用webcrawler访问,或者我不知道如何访问 org.xml.sax和所有其他包之间有什么区别 Java提供了通过JAXP与SAX解析器交

大家好,这是我的第一个问题,我不是程序员

我想生成一个网站地图。我正在用webcrawler(crawler.dev.java.net)爬行一个网站。 有没有办法对我得到的数据使用sax解析器

我还使用了jtidy,并将主页html数据转换为xml文件

我很困惑有这么多sax解析器,我不知道它们之间的区别以及选择哪一个

我想访问html标记的属性,但我不能用webcrawler访问,或者我不知道如何访问


org.xml.sax和所有其他包之间有什么区别

Java提供了通过JAXP与SAX解析器交互的标准方式(请参见下面的代码)。要在SAX解析器之间切换,通常只需将解析器jar添加到类路径中,代码保持不变

您可以按如下方式执行sax解析:

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.Locator;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;

public class Demo {

    public static void main(String[] args) throws Exception {
        SAXParserFactory spf = SAXParserFactory.newInstance();
        SAXParser sp = spf.newSAXParser();
        XMLReader xmlReader = sp.getXMLReader();
        xmlReader.setContentHandler(new MyContentHandler());
        xmlReader.parse(input);

    }

    private static class MyContentHandler implements ContentHandler {

        public void setDocumentLocator(Locator locator) {
        }

        public void startDocument() throws SAXException {
        }

        public void endDocument() throws SAXException {
        }

        public void startPrefixMapping(String prefix, String uri)
                throws SAXException {
        }

        public void endPrefixMapping(String prefix) throws SAXException {
        }

        public void startElement(String uri, String localName, String qName,
                Attributes atts) throws SAXException {
        }

        public void endElement(String uri, String localName, String qName)
                throws SAXException {
        }

        public void characters(char[] ch, int start, int length)
                throws SAXException {
        }

        public void ignorableWhitespace(char[] ch, int start, int length)
                throws SAXException {
        }

        public void processingInstruction(String target, String data)
                throws SAXException {
        }

        public void skippedEntity(String name) throws SAXException {
        }

    }

}