2017-03-23 4 views
0

以下は私のXMLです。私は正常に動作している以下の構文を試してみましたが、ときEMPLOYEE_STATUSは= 0 GLOBAL_EMP_NOをフェッチしかし、私はXML内の兄弟タグを参照する複数のタグをジャンプするJAVA DOM

<GLOBAL_EMP_NO>A12345678</GLOBAL_EMP_NO> 
<EMP_NO>12345678</EMP_NO> 
<FIRST_NAME>Tushar Furlenco</FIRST_NAME> 
<PREF_FIRST_NAME/> 
<MIDDLE_NAME/> 
<LAST_NAME>Joseph</LAST_NAME> 
<PREF_LAST_NAME>Tushar</PREF_LAST_NAME> 
<SUFFIX/> 
<SMTP_EMAIL>[email protected]</SMTP_EMAIL> 
<EMPLOYEE_STATUS>0</EMPLOYEE_STATUS> 

:私はちょうどEMPLOYEE_STATUS = 0

XMLを持っている人のためにGLOBAL_EMP_NO値を取得したいですこれが正しい練習であるかどうかは分かりません。誰でもこのことについてアドバイスできますか?

おかげ

JAVAコード:

Element element = (Element) node; 
ArrayList emp0 = new ArrayList(); 
String emp_status = element.getElementsByTagName("EMPLOYEE_STATUS").item(0).getTextContent(); 
if (emp_status.equals("0")) { 
emp0.add(element.getElementsByTagName("EMPLOYEE_STATUS").item(0).getPreviousSibling().getPreviousSibling(). 
        getPreviousSibling().getPreviousSibling().getPreviousSibling().getPreviousSibling().getPreviousSibling() 
        .getPreviousSibling().getPreviousSibling().getPreviousSibling().getTextContent()); 
} 
+0

なぜあなたはEMPLOYEE_STATUSと同じ方法を使用してGLOBAL_EMP_NOの値を取得することはできませんか? – ndlu

答えて

-1

あなたはこのMCVEのようなものをお探しですか?

String xml = "<Root>" + 
       "<Item>" + 
       "<No>A123</No>" + 
       "<Other>Foo</Other>" + 
       "<Status>0</Status>" + 
       "</Item>" + 
       "<Item>" + 
       "<No>B456</No>" + 
       "<Other>Bar</Other>" + 
       "<Status>1</Status>" + 
       "</Item>" + 
       "<Item>" + 
       "<No>C789</No>" + 
       "<Other>Baz</Other>" + 
       "<Status>0</Status>" + 
       "</Item>" + 
      "</Root>"; 
Element root = DocumentBuilderFactory.newInstance().newDocumentBuilder() 
       .parse(new InputSource(new StringReader(xml))).getDocumentElement(); 
NodeList items = root.getElementsByTagName("Item"); 
for (int i = 0; i < items.getLength(); i++) { 
    Element item = (Element) items.item(i); 
    if ("0".equals(item.getElementsByTagName("Status").item(0).getTextContent())) 
     System.out.println(item.getElementsByTagName("No").item(0).getTextContent()); 
} 

出力

A123 
C789 
+0

Yesssss !!!ありがとうAndreas。私はそれについて考えることができた.. –

関連する問題