2017-07-18 39 views
0

在此之後tutorial我能夠創建一個XML文件,並按照這個tutorial我能夠解析XML文件如何解析XML文件,看它是否有效寫該

我現在想知道如何前在添加另一個Staff之前檢查xml是否爲有效格式,如果xml格式不正確,則會退出並給出無法解析的錯誤。

如果解析亂碼文件,如這一點,就會退出,而不是繼續

asdsadasfsadf 

如果解析有效的XML,但不正確的格式,它也將退出(第一個節點是根而不是公司)

<root> 
<staff id="1001"> 
    <firstname>yong</firstname> 
    <lastname>mook kim</lastname> 
    <nickname>mkyong</nickname> 
    <salary>100000</salary> 
</staff> 
<staff id="2001"> 
    <firstname>low</firstname> 
    <lastname>yin fong</lastname> 
    <nickname>fong fong</nickname> 
    <salary>200000</salary> 
</staff> 
</root>  
+0

歡迎來到Stack Overflow!請參考[遊覽](http://stackoverflow.com/tour),環顧四周,閱讀[幫助中心](http://stackoverflow.com/help),特別是[我該如何問一個好問題?](http://stackoverflow.com/help/how-to-ask)和[我可以問什麼問題?](http://stackoverflow.com/help/on-topic)。 –

+1

定義了XSD,讓JABX(或任何其他XML框架)生成映射器類並配置* unmarshaller *來檢查加載時文檔的有效性。 –

+0

閱讀:[JAXB](https://docs.oracle.com/javase/tutorial/jaxb/intro/) – Frank

回答

0

基本上有你想達到兩個目的:檢查,看看你的XML是良好的,並檢查它是否有效(有效的XML符合DTD或XSD) 。

要檢查是否格式正確,只需簡單地嘗試使用任何主要的xml解析器進行解析,就會發現它的異常並不完整。

要檢查,看它是否是有效的,驗證它針對某個架構(我會建議使用XSD,而不是DTD,但是這只是我)有很多方法可以做到這一點,有幾個在這裏提及What's the best way to validate an XML file against an XSD file?

此外,如果您針對模式驗證xml,您還將檢查它是否格式良好,因爲只有格式良好的xml才能被驗證。