2012-08-02 31 views
0

我有一些XML,看起来像这样:在java中解析“伪”XML(即,格式不正确)?

<xml><name>oscar</name><race>puppet</race><class>grouch</class></xml> 

的标签改变,是可变的,所以不会有永远是一个“名称”标签。

我试过3或4个解析,它们似乎都窒息了。任何提示?

+1

要解析任何事情,必须有一组文本符合的规则 - 因为它不符合XML的规则它遵守哪些规则?以及它是如何形成不良的 - 你的榜样已经形成 – Mark 2012-08-02 23:55:24

回答

0

仅仅因为它没有定义的schema,并不意味着它不是“有效的”XML - 您的示例XML “很好地形成”。

dom4j library会为你做。一旦解析(您的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 
} 
0

This is valid xml;尝试添加允许可选元素的XML模式。如果您可以编写xml架构,则可以使用JAXB来解析它。 XML允许有可选的元素;它并不太“严格”。

0

你的XML样本格式良好的XML,如果有什么“呛”它那么这将是有益的,我们不清楚到底是什么症状的“窒息”是。

相关问题