在java/unix中显示xml文件中的标记名和值

在java/unix中显示xml文件中的标记名和值,xml,Xml,我有一个问题,假设我有一个xml字符串,如下所示: SayHelloWave 如果我希望输出为: 请求:您好 回应:Wave 我将如何进行?我不是在寻找任何特定的东西,我只是想“格式化”xml 提前感谢perl和正则表达式的单向性: echo "<Request>SayHello</Request><Response>Wave</Response>" | perl -ne 'print "Request: $1 Response: $2\n" if

我有一个问题,假设我有一个xml字符串,如下所示:

SayHelloWave

如果我希望输出为:

请求:您好 回应:Wave

我将如何进行?我不是在寻找任何特定的东西,我只是想“格式化”xml


提前感谢

perl和正则表达式的单向性:

echo "<Request>SayHello</Request><Response>Wave</Response>" | perl -ne 'print "Request: $1 Response: $2\n" if /<Request>(.*?)<\/Request><Response>(.*?)<\/Response>/'

你好,Kevin,是的,这很有效,但是我想要的是在xml中获取每个标记名,并将其与它的值一起显示,而不管名称本身如何。这就像用以下方式格式化xml:请求:不管标记名是什么,都要说hello,就像一个通用功能,它会接受每个标记并将其放在way@GRIM:请参阅我更新的示例。请注意,它不适用于嵌套标记;我不确定你是否感兴趣。
#!/usr/bin/perl -w

while (<STDIN>) {
    while ($_ =~ /<(.*?)>(.*?)<\/\1>/g) {
        print ($1 . ": " .  $2 . "\n");
    }   
}
echo "<Request>Hello</Request><Response>Goodbye</Response><Other>Foo</Other>"|./x.pl
import javax.xml.parsers.*;
import javax.xml.xpath.*;
import org.w3c.dom.*;

public class Example {
    Example(String xml) {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = dbf.newDocumentBuilder();
        Document doc = builder.parse(xml);

        XPath xpath = XPathFactory.newInstance().newXPath();
        XPathExpresion expr = xpath.compile("/some/xml/path/text()");
        NodeList nl = (NodeList) xpath.evaluate(doc, XPathConstants.NODE_LIST);

        System.out.println("Node value: " + nl.items(0).getNodeValue());
    }
}