java - if 或语句 xml 和 java 控制台输出

标签 java xml if-statement

下面是我的代码的摘录

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

最佳答案

如果您只想打印 assdeventy 一次,则需要在 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();
    } 
}

这假设 assdeventy 元素在 XML 文档中交替出现。

关于java - if 或语句 xml 和 java 控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31762076/

相关文章:

java - 使用java指定文本中名词的频率

java - 无法使用来自tomcat的css运行jsp

java - JMeter - 在 HTTPSampler 中以编程方式添加自定义 HTTP header

android - 应用程序图标不显示在操作栏中 (Android Studio 1.0.1)

javascript - if 和 else if 和 else - javascript

java - Windows XP 上 IE7 和 IE8 的用户代理 - Java

Java OpenSSL 验证和获取公钥

python - 使用lxml解析带有日语的xml

xml - 在 XML 中添加新的换行/换行标记

php - SQL 查询与 PHP 中的条件