4

给定这样的 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值保持为空。

我希望匹配基于语言属性(而不是排序),但我想知道这是否可能(可能简单框架中的 XPath 支持有限?)。

4

1 回答 1

0

您是否尝试过明确获取元素的文本?IEName[@language='en']/text()

您的 Xpath 正在选择元素,而不是元素的文本,这可能会导致某些 XML 引擎阻塞。

于 2013-05-16T02:04:53.517 回答