1

私が解析しようとしているxml構造は次のとおりです。

<contentFiles>
<contentFile>
<fileNumbers>
    <fileNumber>123<fileNumber>
</fileNumbers>
</contentFile>
<contentFile/>
<contentFiles>

JAXB を使用してこれを解析するにはどうすればよいですか?

上記のゲッターで注釈を使用しましたが、保存された FileNumbers の倍数の最後の要素のみを取得します。FileNumbers のすべての要素をリストに保存したいと考えています。これを行うにはどうすればよいですか?

編集:::

@XmlRootElement(name = "contentFiles")
public class RtSuperQuickMetadata
{
    private List<RtSuperQuickMetadataItem> rtSuperQuickMetadataItems;

    @XmlElement(name = "contentFile")
    public final List<RtSuperQuickMetadataItem> getRtSuperQuickMetadataItems()
    {
        return rtSuperQuickMetadataItems;
    }
// Setter
}


public class RtSuperQuickMetadataItem 
{


private List<FileNumber> fileNumbers;
public RtSuperQuickMetadataItem()
{
  fileNumbers = new ArrayList<FileNumber>();
}

@XmlElement(name = "fileNumbers")
public List<FileNumber> getFileNumbers()
{
    return fileNumbers;
}
//setter
}


@XmlRootElement(name="fileNumber")
public class FileNumber
{
    private String fileNumber;

    /**
     * Default no-arg constructor.
     */
    public FileNumber()
    {
        // public no-arg constructor for JAXB
    }

    /**
     * Accept a filenumber as constructor arg.
     * @param fileNumber is the fileNumber
     */
    public FileNumber(final String fileNumber)
    {
        this.fileNumber = fileNumber;
    }

    /**
     * Getter.
     * @return the fileNumber
     */
    //@XmlElement(name = "fileNumber")
    public final String getFileNumber()
    {
        return fileNumber;
    }

    /**
     * Setter.
     * @param fileNumber to be set.
     */
    public final void setFileNumber(final String fileNumber)
    {
        this.fileNumber = fileNumber;
    }

    @Override
    public final String toString()
    {
        return fileNumber;
    }
}
4

2 に答える 2

0

JAX-B をやってからしばらく経ちましたが、これでうまくいくはずです (関連するセクションのみを掲載)。FileNumberList クラスの作成を避けたい場合は、おそらくアダプターを使用して行うことができますが、それは価値があるよりも多くの作業になります。

public class RtSuperQuickMetadataItem {

    @XmlElement
    public FileNumberList getFileNumbers() {

    }

}

public class FileNumberList {

    @XmlElement(name="fileNumber")
    public List<String> getList() {

    }

}
于 2013-05-03T21:57:23.953 に答える