我有以下xml
<?xml version="1.0"?>
<testsuites xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<testsuite tests="4" failures="3" errors="0" package="HPToolsFileSystemRunner">
<testcase name="C:\HMS\Functional\Functional_Apply_Leave" report="C:\HMS\Functional\Functional_Apply_Leave\Report" time="138.878906" classname="All-Tests.C:\HMS\Functional" status="fail">
<failure message="Test failed" />
</testcase>
<testcase name="C:\HMS\Functional\Functional_Overtime_Request" report="C:\HMS\Functional\Functional_Overtime_Request\Report" time="143.9445962" classname="All-Tests.C:\HMS\Functional" status="fail">
<failure message="Test failed" />
</testcase>
</testsuite>
</testsuites>
我想使用java只在testcase状态中循环。如果状态通过,我想执行方法1,如果状态失败,我想使用java .........................执行方法2。 .................................................. .................................................. .................................................. ..................我写的代码如下 它打印所有属性
private static void loopNode(NodeList nodeList) {
for (int count = 0; count < nodeList.getLength(); count++) {
Node tempNode = nodeList.item(count);
// make sure it's element node.
if (tempNode.getNodeType() == Node.ELEMENT_NODE) {
// get node name and value
System.out.println(tempNode.getNodeName());
System.out.println(tempNode.getTextContent());
if (tempNode.hasAttributes()) {
// get attributes names and values
NamedNodeMap nodeMap = tempNode.getAttributes();
for (int i = 0; i < nodeMap.getLength(); i++) {
Node node = nodeMap.item(i);
System.out.println(node.getNodeName());
System.out.println(node.getNodeValue());
}
}
if (tempNode.hasChildNodes()) {
// loop again if has child nodes
loopNode(tempNode.getChildNodes());
}
System.out.println(tempNode.getNodeName());
}
}
答案 0 :(得分:0)
看看XStream http://x-stream.github.io/ 它将您的xml结构映射到适当的java对象。
然后,您可以显式提取XML表示对象的“TestCases-List”并执行所需的逻辑。
答案 1 :(得分:0)
你差不多完成了。
使用此for循环可根据条件执行方法。
Process myProcess = new Process();
myProcess.StartInfo.Arguments = args;
myProcess.StartInfo.FileName = exe;