有沒有人做過任何類型的XML配對,其名稱中有破折號的元素?我不認爲它有可能,有什麼想法?Java XML解析標準
<Person-Response>
<First-Name> 3119043033121014002</First-Name>
<Last-Name> 3119043033121014002</Last-Name>
</Person-Response>
有沒有人做過任何類型的XML配對,其名稱中有破折號的元素?我不認爲它有可能,有什麼想法?Java XML解析標準
<Person-Response>
<First-Name> 3119043033121014002</First-Name>
<Last-Name> 3119043033121014002</Last-Name>
</Person-Response>
如果這是關於XML到Java的映射,然後JAXB可以處理它questin:
@XmlRootElement(name = "Person-Response") public class PersonResponse { @XmlElement(name = "First-Name") String firstName; @XmlElement(name = "Last-Name") String lastName; }
這是合法的XML;任何兼容的解析器應該沒有問題。
這是,事實上,不合法的。注意結束標籤中的尾部't',這可能是問題的根源。 – 2011-03-28 11:41:07
't'是我的拼寫錯誤... – c12 2011-03-28 11:45:51
關於破折號提到的原因,看到官方XML recommendation of the W3C:鼓勵
文檔作者使用 名這是有意義的單詞或單詞的 組合在自然語言中使用 ,並避免在名稱中使用符號或 空格字符。注意 COLON,HYPHEN-MINUS,FULL STOP (句點),LOW LINE(下劃線)和 MIDDLE DOT是明確允許的。
這是一個合法的XML,任何解析器都可以解析它。
關於Java,您可以通過JAXP API支持在DOM,SAX或StAX中解析此XML。
嗨,諾爾曼,我得到一個XML字符串,我需要把它變成你上面概述的實體。我不知道如何使用JAXB將XML字符串轉換爲沒有模式的對象。你有沒有一個例子可以做到這一點?感謝您的幫助,非常感謝! – c12 2011-03-28 11:56:26
研究javax.xml.bind.JAXBContext的文檔。您可以參考一組註釋類創建一個JAXBContext,然後從該上下文創建一個Unmarshaller。 – 2011-03-28 12:07:34