JAVA를 사용하여 XML 파일을 읽으려고합니다. XML 파일 : - < 내 코드 나는 해시 맵의 매개 변수의 키와 값을 읽기 위해 노력하고Java를 사용하여 복잡한 XML 값 읽기
<?xml version="1.0" encoding="UTF-8"?>
<document>
<testCaseDataName>
<id>1</id >
<testCaseName>EditTest</testCaseName >
<expectedResult>true</expectedResult >
</testCaseDataName>
<testCaseDataName>
<id>2</id >
<testCaseName>AddTest</testCaseName >
<expectedResult>true</expectedResult>
<parameter>
<key>featues</key >
<value>new</value>
</parameter>
</testCaseDataName>
<testCaseDataName>
<id>3</id >
<testCaseName>AddTest</testCaseName >
<expectedResult>true</expectedResult>
<parameter>
<key>projectType</key >
<value>old</value>
</parameter>
<parameter>
<key>Name</key >
<value>Marvel</value>
</parameter>
<parameter>
<key>status</key >
<value>ACTIVE</value>
</parameter>
<parameter>
<key>canOrder</key >
<value>Yes</value>
</parameter>
</testCaseDataName>
<testCaseDataName>
<id>4</id >
<testCaseName>AddTest</testCaseName >
<expectedResult>empty</expectedResult>
<parameter>
<key>projectType</key >
<value>GEN</value>
</parameter>
<parameter>
<key>Name</key >
<value>HPM</value>
</parameter>
<key>no status</key >
<value>ACTIVE</value>
<parameter>
<key>canOrder</key >
<value>Yes</value>
</parameter>
</testCaseDataName>
</document>
라도 좋습니다입니다 : -
내 코드 만의 첫 번째 집합을 읽고public class JDOM {
public static void main(String[] args) throws JDOMException, IOException {
// TODO Auto-generated method stub
File xsdfile = new File("file.xsd");
XMLReaderJDOMFactory schemafac = new XMLReaderXSDFactory(xsdfile);
SAXBuilder builder = new SAXBuilder(schemafac);
//Document doc = new SAXBuilder().build(new File("testdbcsv/ACL.xml"));
Document doc = builder.build(new File("file.xml"));
Element root = doc.getRootElement();
for (Element testcase : root.getChildren()) {
String id = testcase.getChildText("id");
String testCaseName = testcase.getChildText("testCaseName");
String expectedResult = testcase.getChildText("expectedResult");
System.out.println(expectedResult);
HashMap<String,String> parameters = new LinkedHashMap<String,String>();
Element params = testcase.getChild("parameter");
System.out.println(params);
if (params != null) {
Iterator<Element> it = params.getChildren().iterator();
while (it.hasNext()) {
Element key = it.next();
Element val = it.next();
parameters.put(key.getValue(), val.getValue());
}
}
parameters.put("expectedResult", expectedResult);
ObjectMapper obj = new ObjectMapper();
String jsonString = obj.writeValueAsString(parameters);
System.out.println(jsonString);
}
}
}
키와 값을 읽고 다른 키와 값을 읽지 않습니다. 출력은 다음과 같습니다 -
{"expectedResult":"true"}
{"featues":"w,f","expectedResult":"true"}
{"projectType":"MEMOGEN","expectedResult":"true"}
{"projectType":"MEMOGEN","expectedResult":"empty"}
나는 다른 키 값도 문자열에 있어야합니다. 아무도 도울 수 내 코드를 수정
누구나 대답 할 수 있습니까? 긴급 [http://stackoverflow.com/questions/24757825/how-to-read-xml-attribute-values-hierarchically-like-parentnodename-childnodeatt][1] [1 필요 ] : http://stackoverflow.com/questions/24757825/how-to-read-xml-attribute-values-hierarchically-like-parentnodename-childnodeatt –
내 대답은 아래를보십시오. 도움이 될 것입니다 – Newbie