简体   繁体   English

跳转多个引用XML JAVA DOM中的同级标签的标签

[英]jump multiple tags referring a sibling tag in XML JAVA DOM

Below is my XML. 下面是我的XML。 I just want to fetch the GLOBAL_EMP_NO value for those who has EMPLOYEE_STATUS = 0. 我只想为EMPLOYEE_STATUS = 0的用户获取GLOBAL_EMP_NO值。

XML: XML:

<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>TUSHAR.FURLENCO@EMAIL.COM</SMTP_EMAIL>
<EMPLOYEE_STATUS>0</EMPLOYEE_STATUS>

I tried the below syntax which is working fine and fetches the GLOBAL_EMP_NO when EMPLOYEE_STATUS = 0. But I am not sure if this is a right practice. 我尝试了以下语法,这些语法运行良好,并在EMPLOYEE_STATUS = 0时获取GLOBAL_EMP_NO。但是我不确定这是否正确。 Can anyone advise on this please? 任何人都可以对此提出建议吗?

Thanks 谢谢

JAVA Code: 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());
}

Are you looking for something like this MCVE ? 您是否正在寻找类似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());
}

Output 输出量

A123
C789

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM