2017-01-26 5 views
0

私は以下のXMLファイルを解析する必要があります。person_type値が1の生徒のファーストネームを選択する必要があります。私は私のJavaプロジェクトでdom4jを使用しています。私はperson_typeの値に基づいてファーストネームを抽出するソリューションを見つけることができません。どんな助けもありがとう。条件に基づいてDom4jを使用してxmlを解析する

<?xml version="1.0"?> 
<class> 
<student> 
<firstname>dinkar</firstname> 
<lastname>kad</lastname> 
<nickname>dinkar</nickname> 
<marks>85</marks> 
<person_types> 
    <person_type>1</person_type> 
    <person_description>POC</person_description> 
</person_types> 
</student> 
<student> 
<firstname>Vaneet</firstname> 
<lastname>Gupta</lastname> 
<nickname>vinni</nickname> 
<marks>95</marks> 
<person_types> 
    <person_type>1</person_type> 
    <person_description>Assistant</person_description> 
</person_types> 
</student> 
<student> 
<firstname>jasvir</firstname> 
<lastname>singn</lastname> 
<nickname>jazz</nickname> 
<marks>90</marks> 
<person_types> 
    <person_type>1</person_type>` 
    <person_description>Leader</person_description> 
</person_types> 
</student> 
</class> 
+0

それをグーグル。何百もの解決策があります – efekctive

+0

ありがとうございます... –

答えて

0
public static void main(String[] args) { 
     try { 
      File inputFile = new File("input.txt"); 
      SAXReader reader = new SAXReader(); 
      Document document = reader.read(inputFile); 

      System.out.println("Root element :" 
       + document.getRootElement().getName()); 

      Element classElement = document.getRootElement(); 

      List<Node> nodes = document.selectNodes("/class/student"); 
      System.out.println("----------------------------"); 
      for (Node node : nodes) { 
      if("1".equals(node.selectSingleNode("person_types").selectSingleNode("person_type").getText())){ 
       System.out.println("\nCurrent Element :" 
         + node.getName()); 
         System.out.println("Student roll no : " 
         + node.valueOf("@rollno")); 
         System.out.println("First Name : " + node.selectSingleNode("firstname").getText()); 
         System.out.println("Last Name : " + node.selectSingleNode("lastname").getText()); 
         System.out.println("First Name : " + node.selectSingleNode("nickname").getText()); 
         System.out.println("Marks : " + node.selectSingleNode("marks").getText()); 
      } 
      } 
     } catch (DocumentException e) { 
      e.printStackTrace(); 
     } 
    } 
+0

ありがとうございました!!!私たちがそのようにナビゲートできることを知らなかった。あなたは私のために多くの仕事を保存しました! :) –

関連する問題