簡體   English   中英

Java的Hello World Saxon

[英]Hello World Saxon with Java

使用通過apt來安裝Saxon-HEtagsoup解析htmlJAR文件是一種方法:

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進口什么? 也許使用Saxon和JAXP接口?

也:

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

您可以在saxonica.com和sourceforge.net網站上的saxon-resources下載中找到許多使用Java的Saxon調用轉換的簡單示例。

很難確切地知道您在這里想要什么,因為您的命令行示例沒有使用Saxon來執行除調用TagSoup解析器和序列化結果以外的任何有用的事情。 從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處理,那么當然是完全可行的(我將始終使用s9api API來用於Saxon,但您也可以使用JAXP或XQJ),但是具體細節取決於您要執行的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM