如何解决在Java / unix的xml文件中显示标签名称和值
|| 我有一个问题,假设我有一个xml字符串,例如下面的字符串:解决方法
Perl和正则表达式的一种方法:
echo \"<Request>SayHello</Request><Response>Wave</Response>\" | perl -ne \'print \"Request: $1 Response: $2\\n\" if /<Request>(.*?)<\\/Request><Response>(.*?)<\\/Response>/\'
编辑:
好的,可以捕获并打印任何标签(将其放入文件x.pl):
#!/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
编辑2:
然后这是Java的另一种方式,您可以根据xpath表达式提取所需的任何内容:
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());
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。