java使用SAX解析器,需要所有xml元素(在特定元素下)作为字符串
我需要使用sax解析器将所有xml元素(在特定元素下)作为下面xml中的字符串
示例xml:
<root>
<meta>
<elememtA>xx</elememtA>
</meta>
<payload>
<parent>
<child1>a</child1>
</parent>
<parent>
<child1>b</child1>
</parent>
</payload>
</root>
Sax解析器实现:
public class UserHandler extends DefaultHandler {
@Override
public void startElement(String uri,
String localName, String qName, Attributes attributes)
throws SAXException {
if (qName.equalsIgnoreCase("payload")) {
//need all elements inside payload as string
}
比如
我需要休闲输出:
<parent><child1>a</child1></parent><parent><child2>b</child2></parent>
# 1 楼答案
似乎需要xml格式的输出,即需要xml格式的
parent
节点。SAXParser或XPath引擎处理节点和节点名称。您必须编写特殊的代码以xml形式返回所需的输出,这可能非常麻烦,而且很难维护轻松获取所需输出xml的一种方法是使用XSLT
考虑使用XSLT:
将其放入名为
parentxslt.xml
的文件中,并将输入xml放入parent.xml
,然后可以使用以下java代码:# 2 楼答案
下面是工作代码。 您可以在输出的最后一行看到结果。享受吧
输出
Junit中的代码-带有工作测试