给出这样的XML:
...
<Sport SportId="1">
<Name language="en">Soccer</Name>
<Name language="fi">Jalkapallo</Name>
...
</Sport>
...
如何使用Simple XML Framework将两个值读入Java类的字段? (<Sport>
元素已正确映射到相应的类。)
public class Sport {
...
String nameEn;
String nameFi;
...
}
我尝试了类似的方法:
@Element(name = "Name")
@Path("Name[@language='en']")
String nameEn;
但解析失败了:
Exception in thread "main" org.simpleframework.xml.core.PathException:
Invalid index for path '[@language='en']' in field 'nameEn'
另外,省略@Element
这样:
@Path("Name[@language='en']")
String nameEn;
...解析不会崩溃,但nameEn
值保持为空。
我希望匹配基于语言属性(而不是排序),但我想知道这是否可能(可能是Simple Framework中的XPath支持有限?)。 / p>
答案 0 :(得分:0)
您是否尝试过显式获取元素的文本?即Name[@language='en']/text()
您的Xpath正在选择元素,而不是元素的 text ,这可能会导致某些XML引擎被阻塞。