0

apt forおよび解析JARによってインストールされたファイルを使用することは、次のようにワンライナーです。Saxon-HEtagsouphtml

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特に、この実行に はどのインポートが必要ですか? おそらくSaxonJAXPインターフェースを使用していますか?

また:

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

4

1 に答える 1

1

saxonica.com と sourceforge.net の両方の Web サイトで入手できる saxon-resources ダウンロードで、Java から Saxon を使用して変換を呼び出す簡単な例を多数見つけることができます。

コマンド ラインの例では、Saxon を使用して、TagSoup パーサーを呼び出して結果をシリアル化する以外に有用なことを行っていないため、ここで何が必要かを正確に知ることは困難です。Java からこれを行う最も簡単な方法は、JAXP ID 変換を使用することです。これは、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 も使用できます)。

于 2019-01-04T06:13:31.457 に答える