[英]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.