2013-12-17 2 views
1

시작시 응용 프로그램 매개 변수를 저장하고 호출하는 데 사용되는 표준 응용 프로그램으로 표준 XML을 가져옵니다.Android - "Well Formed"테스트 가져 오기시 유효한 XML

XML은 onPause()를 업데이트하지만 어떤 이유로 응용 프로그램이 충돌하면 결과 XML이 유효하지 않을 수 있습니다.

XML이 유효한지 테스트하고 싶지 않다면 일반 설정을 사용하고 싶습니다.

Q : 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); 

    } 
} 
} 

감사합니다.

답변

1

당신은 XML은 그에게 다음 유효한 XML을 구문 분석하는 경우 DocumentBuilderFactory

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = dbf.newDocumentBuilder(); 
db.parse(pathTmp + "/tmp.xml"); 

를 사용하지 않을 경우는 유효한 XML의 유효성을 검사 할 수 있습니다.

+0

감사합니다. Jayamohan, 어떻게 documentBuilderFactory 구문 분석 메소드의 true 또는 false 부울 출력을 반환하겠습니까? 즉 파스가 사실이라면 말입니다. 감사. – user1540142

+0

XML에 문제가있는 경우 API별로 'SAXException'을 가져와야합니다. – Jayamohan

+0

다시 한 번 감사드립니다. 잘못된 XML이 주어 졌을 때 SAXException을 처리하는 예제를 제공 할 수 있습니다. 대신에 다른 메소드에서 설정을로드 할 수 있습니다. 많은 감사. – user1540142

관련 문제