很容易解析修复了标签名称的XML。在XStream中,我们可以简单地使用@XStreamAlias("tagname")
注释。但是如何解析不修复标记名称的XML。假设我有以下XML:
<result>
<result1>
<fixed1> ... </fixed1>
<fixed2> ... </fixed2>
</result1>
<result2>
<item>
<America>
<name> America </name>
<language> English </language>
</America>
</item>
<item>
<Spain>
<name> Spain </name>
<language> Spanish </language>
</Spain>
</item>
</result2>
</result>
标记名称America
和Spain
不固定,有时我可能会获得其他标记名称,如德国,印度等。
在这种情况下如何为标记result2
定义pojo?有没有办法告诉XStream
接受任何东西作为别名如果标签名在前面是未知的?
答案 0 :(得分:0)
如果你可以从标签内部获取标签(字段&#39;名称&#39;),使用Xpath,你可以这样做:
//result2/*/name/text()
另一种选择可能是使用整个元素,如:
//result2/*
或者:
//result2/*/name()
答案 1 :(得分:0)
某些技术(特别是数据绑定方法)已经过优化,可以处理XML,其结构在编译时是已知的。其他(如DOM和其他类似DOM的树模型--JDOM,XOM等)设计用于处理其结构未提前知道的XML。使用该工具进行工作。
XSLT和XQuery尝试混合两者。在其模式感知形式中,他们可以在可用时利用静态结构信息。但更常见的是,他们是在&#34;无类型&#34;模式,没有元素名称或结构的先验知识,一切都按照它来处理。基于XSLT规则的处理范例特别适合于&#34;半结构化的#34;内容不可预测或可变的XML。