我有一些XML,看起來像這樣:在java中解析「僞」XML(即,格式不正確)?
<xml><name>oscar</name><race>puppet</race><class>grouch</class></xml>
的標籤改變,是可變的,所以不會有永遠是一個「名稱」標籤。
我試過3或4個解析,它們似乎都窒息了。任何提示?
我有一些XML,看起來像這樣:在java中解析「僞」XML(即,格式不正確)?
<xml><name>oscar</name><race>puppet</race><class>grouch</class></xml>
的標籤改變,是可變的,所以不會有永遠是一個「名稱」標籤。
我試過3或4個解析,它們似乎都窒息了。任何提示?
僅僅因爲它沒有定義的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
}
This is valid xml;嘗試添加允許可選元素的XML模式。如果您可以編寫xml架構,則可以使用JAXB來解析它。 XML允許有可選的元素;它並不太「嚴格」。
你的XML樣本格式良好的XML,如果有什麼「嗆」它那麼這將是有益的,我們不清楚到底是什麼症狀的「窒息」是。
要解析任何事情,必須有一組文本符合的規則 - 因爲它不符合XML的規則它遵守哪些規則?以及它是如何形成不良的 - 你的榜樣已經形成 – Mark 2012-08-02 23:55:24