是否可以使用Simple XML将XML标记的内容作为Java中的String获取?我正在尝试使用Converter。我可以将<tag1>
视为InputNode对象,但没有API将内容检索为String。我可以用InputNode.getNext()
迭代孩子,并通过递归检索名称,属性,值等来重构内容......但我永远不会确定它会与原始XML匹配。
例:
<root>
<tag1>
<unknownTag>Unknown</unknownTag>
<otherUnknownTag>
<children1>hello</children1>
<children2>bye</children2>
</otherUnknownTag>
</tag1>
<tag2>
...
</tag2>
</root>
我想检索<tag1>
的以下内容作为字符串(并防止所有<tag1>
孩子的反序列化):
<unknownTag>Unknown</unknownTag>
<otherUnknownTag>
<children1>hello</children1>
<children2>bye</children2>
</otherUnknownTag>
在反序列化时不知道<tag1>
的内容。
据我所知,这可能只是部分原因。这是我有多远:
public String getNodeAsString(InputNode node) throws Exception {
StringBuilder builder = new StringBuilder();
String value = node.getValue();
if (value != null) {
builder.append(value);
}
InputNode child = node.getNext();
while (child != null) {
builder.append("<").append(child.getName());
for (String attribute : child.getAttributes()) {
builder.append(" ")
.append(attribute)
.append("=\"")
.append(child.getAttribute(attribute).getValue())
.append("\"");
}
builder.append(">")
.append(child.getValue())
.append("</").append(child.getName()).append(">");
value = node.getValue();
if (value != null) {
builder.append(value);
}
child = child.getNext();
}
return builder.toString();
}
这种作品有两个缺点: