下面是我的代码的摘录
Document doc = loadXMLFromString(httpPostJava());
NodeList list = doc.getElementsByTagName("*");
int bookCount = 0;
for (int i = 0; i < list.getLength(); i++) {
Element element = (Element)list.item(i);
String nodeName = element.getNodeName();
if (nodeName.equals("assd") ||nodeName.equals("eventy")) {
System.out.println(("\t"+nodeName+"\t" element.getChildNodes().item(0).getNodeValue()));
}
我遇到的问题是我希望“assd”节点和“eventy”节点的输出在控制台输出中并排显示。目前它正在“assd”节点下打印,这是因为 if 语句找到“assd”节点打印数据并且循环再次运行,现在输出到下面的行。我对 Java 还算陌生,已经接触了 6 个月了。
我希望输出应该喜欢
assd eventy
data data1
根据格洛芬德尔的建议,这是我在控制台中得到的输出:
assd eventy
frail
GYMR
grail
KRYM
我正在寻找的输出是:
assd eventy
GYMR frail
KRYM grail
最佳答案
如果您只想打印 assd
和 eventy
一次,则需要在 for 循环外部执行此操作。而且似乎 eventy 出现在 assd 之前,因此您需要额外的技巧:
System.out.println("\tassd\teventy");
String eventy = null;
for (int i = 0; i < list.getLength(); i++) {
Element element = (Element)list.item(i);
String nodeName = element.getNodeName();
if (nodeName.equals("assd")) {
System.out.println("\t" + element.getChildNodes().item(0).getNodeValue() + "\t" + eventy);
} else if (nodeName.equals("eventy")) {
eventy = element.getChildNodes().item(0).getNodeValue();
}
}
这假设 assd
和 eventy
元素在 XML 文档中交替出现。
关于java - if 或语句 xml 和 java 控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31762076/