无法用简单的xml解析字符串

时间:2013-07-02 07:46:18

标签: java android simple-framework

我有这样非常简单的xml:

<EncryptedToken>11d8575638eaa52b</EncryptedToken>

这是我的java类:

@Root
public class EncryptedTokenDto {
@Element(name = "EncryptedToken", required = false)
private String encryptedToken;

public String getEncryptedToken() {
    return encryptedToken;
}

public void setEncryptedToken(String encryptedToken) {
    this.encryptedToken = encryptedToken;
}

}

但是当我尝试解析这个xml encryptedToken总是null时。我的代码出了什么问题?

更新:

以下是main的示例代码:

   Serializer serializer = new Persister();

    EncryptedTokenDto encryptedTokenDto = null;
    try {
        String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <EncryptedToken>11d8575638eaa52b</EncryptedToken>";
        encryptedTokenDto = serializer.read(EncryptedTokenDto.class, xml);
    } catch (Exception e) {
        e.printStackTrace();
    }
    if (encryptedTokenDto != null) {
        System.out.println(encryptedTokenDto.getEncryptedToken());
    }

实际上它不是真正的代码,因为我从Web服务接收xml,但其他一切都很好,问题只在于xml解析。

更新2:

我发现如果我像这样改变我的xml:

String xml = "<root> \n <EncryptedToken>11d8575638eaa52b</EncryptedToken> \n </root>";

写下这样的课程:

@Root
public class EncryptedTokenDto {
@Element(name = "EncryptedToken", required = false)
private String encryptedToken;

public String getEncryptedToken() {
    return this.encryptedToken;
}

public void setEncryptedToken(String encryptedToken) {
    this.encryptedToken = encryptedToken;
}
}

Everyrthing没问题。

所以我的问题是:如何使用SimpleXml解析xml文档而无需root权限 注意:我需要使用SimpleXml,我不能使用任何其他解析器。

1 个答案:

答案 0 :(得分:1)

尝试@Text,而不是@Element,它将工作