私はこのような非常に単純な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;
}
}
すべて問題ありません。
私の質問は次のとおりです。SimpleXml を使用して、ルート relement なしで xml ドキュメントを解析する方法はありますか
注: SimpleXml を使用する必要があります。他のパーサーは使用できません。