【问题标题】:Hello World Saxon with Java使用 Java 的 Hello World 撒克逊人
【发布时间】:2019-01-03 23:26:22
【问题描述】:

使用通过 apt 安装的JAR 文件为Saxon-HEtagsoup 解析html 是单行的:

thufir@dur:~/saxon$ 
thufir@dur:~/saxon$ java -cp /usr/share/java/Saxon-HE-9.8.0.14.jar:/usr/share/java/tagsoup-1.2.1.jar net.sf.saxon.Query -x:org.ccil.cowan.tagsoup.Parser -qs:doc\(\'http://books.toscrape.com/\'\) 
<?xml version="1.0" encoding="UTF-8"?><!--[if lt IE 7]>      <html lang="en-us" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--><!--[if IE 7]>         <html lang="en-us" class="no-js lt-ie9 lt-ie8"> <![endif]--><!--[if IE 8]>         <html lang="en-us" class="no-js lt-ie9"> <![endif]--><!--[if gt IE 8]><!--><html xmlns="http://www.w3.org/1999/xhtml" xmlns:html="http://www.w3.org/1999/xhtml" class="no-js" lang="en-us"><!--<![endif]--><head><title>
    All products | Books to Scrape - Sandbox
..        
        <!-- Version: N/A -->

thufir@dur:~/saxon$ 
thufir@dur:~/saxon$ 

我将如何从 Java 中执行此操作? 特别是,此执行需要从 Saxon 导入哪些内容? Perhaps 使用 Saxon 和 JAXP 接口?

还有:

http://codingwithpassion.blogspot.com/2011/03/saxon-xslt-java-example.html

【问题讨论】:

    标签: java xml xquery saxon tag-soup


    【解决方案1】:

    您可以在 saxonica.com 和 sourceforge.net 网站上的 saxon-resources 下载中找到许多使用 Java 中的 Saxon 调用转换的简单示例。

    在这里很难确切地知道您想要什么,因为您的命令行示例除了调用 TagSoup 解析器和序列化结果之外没有使用 Saxon 做任何有用的事情。从 Java 中执行此操作的最简单方法是使用 JAXP 身份转换,它与 JDK 中的内置 XSLT 转换器和 Saxon 一样运行:

    TransformerFactory factory = TransformerFactory.newInstance();
    XMLReader xmlReader = XMLReaderFactory.createXMLReader("org.ccil.cowan.tagsoup.Parser");
    Source input = new SAXSource(xmlReader, new InputSource("http://books.toscrape.com/"));
    Result output = new StreamResult(System.out);
    factory.newTransformer().transform(input, output);
    

    如果你想添加一些 XSLT 或 XQuery 处理,那当然是完全可能的(我总是使用 Saxon 的 s9api API,但你也可以使用 JAXP 或 XQJ),但细节取决于你想要什么做。

    【讨论】:

    • 这绝对给了我一些工作,谢谢。顺便说一句,感谢您对邮件列表的回复,非常有帮助。我希望留在撒克逊人的 HE 中,并标记汤,但 SaxSource 构造函数对我不起作用:stackoverflow.com/q/54041860/262852 话虽如此,这回答了问题,因为它告诉我在哪里看 不该去的地方。
    猜你喜欢
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 2014-03-30
    • 2016-01-25
    • 2023-03-25
    • 2010-10-02
    相关资源
    最近更新 更多