1

XML 構造:

<rep>
<text type="full">[!CDATA[Demo, <a href="http://www.google.com" target="_blank">Search</a> thank you]]</text>
</rep>

JAXB を使用してこの XML を解析することはできますが、結果は安っぽく、@XmlValueテキスト要素の値を取得するために使用しました。

Java コード:

@XmlRootElement(name = "rep")
public class Demo {
    @XmlElement(name = "text")
    private Text text;

    @Override
    public String toString() {
        return text.toString();
    }
}
@XmlRootElement(name = "text")
public class Text {
    @XmlValue
    private String text;

    @Override
    public String toString() {
        return "[text=" + text + "]";
    }
}

出力:

[text= thank you]]]

しかし、次のような結果が必要です。

[!CDATA[Demo, <a href="http://www.google.com" target="_blank">Search</a> thank you]]

また

Demo, <a href="http://www.google.com" target="_blank">Search</a> thank you
4

1 に答える 1

0

CDATA セクションは で始まり で<![CDATA[終わる]]>ため、XML ドキュメントは次のようになります。

<rep>
<text type="full"><![CDATA[Demo, <a href="http://www.google.com" target="_blank">Search</a> thank you]]></text>
</rep>

サンプルコード

import java.io.File;
import javax.xml.bind.*;

public class Example {

    public static void main(String[] args) throws Exception {
        JAXBContext jc = JAXBContext.newInstance(Demo.class);

        Unmarshaller unmarshaller = jc.createUnmarshaller();
        File xsr = new File("src/forum16684040/input.xml");
        Demo demo = (Demo) unmarshaller.unmarshal(xsr);

        System.out.println(demo);
    }

}

出力

[text=Demo, <a href="http://www.google.com" target="_blank">Search</a> thank you]

アップデート

ありがとう、しかし、この場合、XML を編集することはできません。bcoz サードパーティの API から XML を取得します。結果を得る方法はありますか?

a を使用@XmlAnyElementおよび指定DomHandlerして、DOM コンテンツを として保持できますString。以下は、完全な例を含む回答へのリンクです。

于 2013-05-22T10:03:25.970 に答える