(Node.js / Java)如何使XML输出漂亮

时间:2018-11-27 20:49:13

标签: java node.js xml xml-parsing pretty-print

我一直在尝试用XML进行漂亮的输出,但是我无法做到这一点,我想在node.js和java(android)中做到这一点。

我的XML输入是:

  <custom.TextView 
  android:id="@+id/textView2" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  android:text="TextView" tools:layout_editor_absoluteX="164dp" /> 

解析此代码后,输出为

<custom.TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content"  android:text="TextView" tools:layout_editor_absoluteX="164dp" /> 

我的预期输出是

 <custom.TextView 
  android:id="@+id/textView2" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  android:text="TextView" tools:layout_editor_absoluteX="164dp" /> 

我该怎么做才能帮助我!

1 个答案:

答案 0 :(得分:1)

尽管在这种情况下使用的方法不是很好,但是您可以尝试使用此代码获得漂亮的输出,在下面的代码中您可以提供xml,然后根据需要将其美化。

    var arrayEml= xml = '';

    for (var i = 0; i < xml.length; i++) {
        if ((xml[i].match(/[a-zA-Z]/)) && (xml[i + 1] == ' ') && (xml[i + 2].match(/[a-zA-Z]/))) {
            arrayEml += (xml[i] + '\n');
        } else {
            arrayEml += xml[i];
        }
        // }
    }
    var againParsing = ' ';
    for (var i = 0; i < arrayEml.length; i++) {

        if ((xml[i] = '"') && (xml[i + 1] == ' ') && (xml[i + 2].match(/[a-zA-Z]/))) {
            againParsing += (xml[i] + '\n' + "\t   ");
        } else {
            againParsing += xml[i];
        }
    }