1
我在啓動時將標準XML導入到用於保存和調用應用程序參數的應用程序中。Android - 測試「完好形成」導入時的有效XML
XML更新onPause()但是,如果應用程序因任何原因崩潰,則生成的XML可能無效。
我想能夠測試,看看XML是否有效,如果沒有,然後使用通用設置。
問:如何測試XML以查看它是否有效?
示例XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DecisionList>
<ExampleSet1>
<Value1> 1.0 </Value1>
</ExampleSet1>
</DecisionList>
主要活動
public class MyActivity extends Activity implements OnItemSelectedListener{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
MyActivity_Preflight.Setup();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// .......
}
}
預檢活動
public class MyActivity_Preflight {
public static void Setup() throws Exception{
try{
XPathFactory factory=XPathFactory.newInstance();
XPath xPath=factory.newXPath();
File pathTmp = new File(Environment.getExternalStorageDirectory() + "/myApp/Tmp");
File xmlDocument = new File(pathTmp + "/tmp.xml");
/*
* Chk to see if XML is Valid Statement block Here
* if Valid then Continue
*/
InputSource inputSource = new InputSource(new FileInputStream(xmlDocument));
XPathExpression tag_Value1 = xPath.compile("/DecisionList/ExampleSet1/Value1");
String Value1 = tag_Value1.evaluate(inputSource);
GlobalVariables.setSeekBarValue1(Float.valueOf(Value1));
// if (XMLisNotValid)
// GlobalVariables.setSeekBarValue1(1.0f);
}
}
}
感謝您的時間。
感謝Jayamohan,我將如何返回documentBuilderFactory解析方法的true或false布爾輸出。也就是說,如果它解析然後是真的。謝謝。 – user1540142
如果XML中有任何問題,您應該根據API獲取'SAXException'。 – Jayamohan
再次感謝,你能給我一個例子,當給一個畸形的XML時,處理一個SAXException wherebby而我可以從另一個方法加載設置。非常感謝。 – user1540142