0
我正在編寫一個Java程序,用於將XML文件解析/解組爲Java對象。有什麼方便的方法來檢查xml文件是否包含無效字符
該程序需要XML文件,這是由第三方生成的,我沒有任何控制權。
一旦獲得文件,這些文件的程序檢查是否使用他們各自的XSD↓
URL schemaFile = this.getClass().getClassLoader().getResource(xsd/some.xsd);
Source xmlFile = new StreamSource(new File(/path/to/xml));
SchemaFactory schemaFactory = SchemaFactory.newInstance(W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(schemaFile);
Validator validator = schema.newValidator();
validator.validate(xmlFile);
然後開始分析/解編其個人使用JAXP格式無效。
我面對的問題是,即使在上面的驗證後,有時我會得到以下錯誤。 (以上驗證似乎並不檢查XML是否包含無效字符,但只有它的XSD比較輸入)
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[xxx,xxx]
有檢查使用程序或某些工具XML文件是否包含無效字符的任意方便的方法?
我已經使用「sed -n'240,250p'」提取了出現異常的部分(第245行)。 sample.xml
你能想象一種不涉及檢查每個角色的方法嗎?爲什麼不能在發生異常時處理異常? –
我不確定這是我應該如何處理無效字符。爲了某些目的,我將XML數據導入數據庫。 (XML - > Java對象 - >數據庫表)。你不覺得那些無效字符會導致意想不到的副作用嗎? –
他們將導致解析異常。在整個輸入處理完成之前不要提交。它應該是全部或沒有。 –