3

使用Simple解析 XML 文件时,出现如下错误:

org.simpleframework.xml.core.ValueRequiredException: 
Unable to satisfy ... on field 'id' private String Foo.id 
for class Foo at line -1

我需要更改什么才能获得真实的行号?

[编辑]这是一个要点:SimpleXml 行号问题的演示

我正在使用 simple-xml:2.6.1 和 junit:4.9

4

1 回答 1

2

取决于它在哪里运行。如果您在 JDK 1.5 中运行,则在类路径中没有 StAX,这意味着您正在使用 DOM,因此您总是会在出现错误时得到 -1。如果您在类路径中使用带有 StAX 的 JDK 1.5 或更高版本,则 StAX 不支持行号(也许尝试不同的库,我推荐Woodstox)。

[编辑]如果您想尝试 Woodstox 并使用 Maven,请将其添加到您的 POM:

<dependency>
    <groupId>org.codehaus.woodstox</groupId>
    <artifactId>woodstox-core-asl</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.codehaus.woodstox</groupId>
    <artifactId>stax2-api</artifactId>
    <version>3.1.1</version>
</dependency>

这是使用 Apache License 2.0 的版本。如果您更喜欢 LGPL 2.1,请替换-asl-lgpl.

于 2011-09-01T12:44:25.397 回答