2011-01-20 11 views
1

外部DTDファイルを使用してXMLファイルを検証するにはどうすればよいですか?DTD宣言がXMLファイルに含まれていないXMLファイルのJava DTD検証?

DTDは、いくつかのURLにあります。 http://localhost/example.dtd

XMLファイルでDTDが参照されていないため、JavaサーブレットでDTDを参照する必要があります。

XMLファイルの現在の処理にJDOMを使用しています。

すべてのヘルプやポインタが

答えて

2

によって処理されています

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = factory.newDocumentBuilder(); 

//parse file into DOM 
Document doc = db.parse(new File("file.xml")); 
DOMSource source = new DOMSource(doc); 

//now use a transformer to add the DTD element 
TransformerFactory tf = TransformerFactory.newInstance(); 
Transformer transformer = tf.newTransformer(); 
transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "/path/to/file.dtd"); 
StringWriter writer = new StringWriter(); 
StreamResult result = new StreamResult(writer); 
transformer.transform(source, result); 

//finally parse the result. 
//this will throw an exception if the doc is invalid 
db.parse(new InputSource(new StringReader(writer.toString()))); 
+0

これはJDOMで可能ですか? –

+0

AndroidでSAX解析を使用するのと同じ質問はありますか? –

+0

@dogbaneあなたが与えたこのコードの使い方について教えてください。してください、それは本当に緊急です...私は私のXMLファイルで正確に同じ問題があります... –

2

を高く評価され、この質問はすでにDTDはXMLファイルで指定されていない場合、あなたはそれを追加するために変圧器を使用し、それを解析することができますstackoverflow

関連する問題