我有一些看起来像这样的 xml:
<xml><name>oscar</name><race>puppet</race><class>grouch</class></xml>
标签会发生变化并且是可变的,因此不会总是有“名称”标签。
我已经尝试了 3 或 4 次解析,但它们似乎都被它扼住了。有什么提示吗?
这是有效的 xml;尝试添加允许可选元素的 XML 模式。如果您可以编写 xml 模式,则可以使用JAXB对其进行解析。XML 允许有可选元素;它并不太“严格”。
仅仅因为它没有定义的schema,并不意味着它不是“有效的” XML - 您的示例 XML是“格式正确的”。
dom4j 库将为您完成。一旦解析(您的 XML 将解析 OK),您就可以遍历子元素,无论它们的标签名称是什么,并使用您的数据。
以下是如何使用它的示例:
import org.dom4j.*;
String text = "<xml><name>oscar</name><race>puppet</race><class>grouch</class></xml>";
Document document = DocumentHelper.parseText(text);
Element root = document.getRootElement();
for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
Element element = (Element) i.next();
String tagName = element.getQName();
String contents = element.getText();
// do something
}
您的 XML 样本是格式良好的 XML,如果有任何东西“阻塞”它,那么我们可以准确地知道“阻塞”的症状是什么。