2011-12-26 16 views
2

不要な情報を残してxmlファイルに保存するhtmlファイルから特定の情報(名前、説明、IDなど)を取り除く方法を見つけようとしています。xmlにhtml値を保存する

xmlをhtmlにすることができるので、xsltを使ってみることを考えましたが、それ以外の方法では動作しません。

正直なところ、私はこれを達成しようとしている他の言語を知りません。私は基本的なJavaとJavaScriptを知っているが、もしそれができるかどうかはわからない。

私は助言を受けていますか、助けてください。私はちょうど楽しみのためにこれをやっているので、新しい言語を勉強して喜んで。

答えて

3

(XMLによる)うまく形成されないHTML入力を処理するためのJavaライブラリの数があります。これらのライブラリには、ドキュメントを照会または操作するための組み込みメソッドもありますが、文書を解析した後は、を認識することが重要です。これは通常、XMLであるかのように扱いますJava XMLインタフェース)。つまり、不正な入力を解析するためにこれらのライブラリのみが必要です。彼らが提供する他のユーティリティはほとんど不必要です。ここ

HTMLCleanerを使用してHTMLを解析した後、標準org.w3c.dom.Documentにそのオブジェクトを変換示す例は次のとおり

Jsoup
TagNode tagNode = new HtmlCleaner().clean("<html><div><p>test"); 
DomSerializer ser = new DomSerializer(new CleanerProperties()); 
org.w3c.dom.Document doc = ser.createDOM(tagNode); 

、単に入力を解析し、文字列にそれをシリアライズ:

String text = Jsoup.parse("<html><div><p>test").outerHtml(); 

ここで説明した方法のいずれかを使用して、その文字列をW3Cドキュメントに変換します。

あなたは今、この文書を変換するために、標準のJAXPインタフェースを使用することができます。

TransformerFactory tFact = TransformerFactory.newInstance(); 
Transformer transformer = tFact.newTransformer(); 
Source source = new DOMSource(doc); 
Result result = new StreamResult(System.out); 
transformer.transform(source, result); 

注:恒等変換よりも有用な何かをするtFact.newTransformer()にいくつかのXSLTソースを提供します。

0

理想的には、HTMLをXMLとして扱うことができます。あなたが運が良ければ、既にXHTMLであり、HTMLとして処理することができます。そうでない場合は、http://nekohtml.sourceforge.net/(HTMLタグバランサーなど)を使用してHTMLをXML準拠のものに処理し、XSLTを使用できるようにします。

個人的なブログのhttp://blogger.ziesemer.com/2008/03/scraping-suns-bug-database.htmlで具体的な例といくつかの注意があります。

関連する問題