2017-02-09 2 views
0

я следующий XMLJava цикл одного узла 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. если статус передан, я хочу выполнить метод 1, и если состояние не выполнено, я хочу выполнить метод 2 с помощью java .......................... .................................................. .................................................. .................................................. .................. следующий код я написал печатает все атрибуты

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()); 

} 

} 
+2

До сих пор вы только описали свои требования. Добавьте код, который вы написали, чтобы решить вашу проблему; и укажите, где вы застряли. Понимаете, это не бесплатная услуга «Мы делаем вашу работу за вас», где другие люди, ну, делайте свою работу. Мы ** помогаем ** решить вашу проблему; мы не решим его для вас. – GhostCat

+0

добавил мой код, но он печатает все значения – user2147357

+0

Конечно. Потому что вы написали код, который печатает все значения. В основном вы должны использовать эти методы, которые в настоящее время используете значения do dump ... для сравнения этих значений; а затем делать разные вещи. Извините, но это настолько простой материал, что я слышал, как он это объясняет. – GhostCat

ответ

0

взглянуть на XStream http://x-stream.github.io/ он отображает структуру XML в соответствующих java-объекты.

Затем вы можете явно извлечь «TestCases-List» вашего объекта представления XML и выполнить нужную логику.

0

Вы почти закончили.

Используйте этот цикл для выполнения методов, основанных на условии.

for (int i = 0; i < nodeMap.getLength(); i++) { 

    if(node.getNodeName().equals("status")){ 

     if(node.getNodeValue().equals("true")) 
      method1() 
     else 
      method1() 
    } 
} 
Смежные вопросы