有没有人做过任何类型的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