栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JAXB编组与CDATA编组

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAXB编组与CDATA编组

您可以执行以下操作:

适配器CDATA

package forum14193944;import javax.xml.bind.annotation.adapters.XmlAdapter;public class AdapterCDATA extends XmlAdapter<String, String> {    @Override    public String marshal(String arg0) throws Exception {        return "<![CDATA[" + arg0 + "]]>";    }    @Override    public String unmarshal(String arg0) throws Exception {        return arg0;    }}

@XmlJavaTypeAdapter
注释用于指定的
XmlAdapter
应该被使用。

package forum14193944;import javax.xml.bind.annotation.*;import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;@XmlRootElement@XmlAccessorType(XmlAccessType.FIELD)public class Root {    @XmlJavaTypeAdapter(AdapterCDATA.class)    private String name;    @XmlJavaTypeAdapter(AdapterCDATA.class)    private String surname;    @XmlJavaTypeAdapter(AdapterCDATA.class)    private String id;}

演示版

我必须包装

System.out
一个
OutputStreamWriter
以获得所需的效果。另请注意,设置
CharacterEscapeHandler
方法意味着它负责该操作的所有转义处理
Marshaller

package forum14193944;import java.io.*;import javax.xml.bind.*;import com.sun.xml.bind.marshaller.*;public class Demo {    public static void main(String[] args) throws Exception {        JAXBContext jc = JAXBContext.newInstance(Root.class);        Unmarshaller unmarshaller = jc.createUnmarshaller();        File xml = new File("src/forum14193944/input.xml");        Root root = (Root) unmarshaller.unmarshal(xml);        Marshaller marshaller = jc.createMarshaller();        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);        marshaller.setProperty(CharacterEscapeHandler.class.getName(),     new CharacterEscapeHandler() {         @Override         public void escape(char[] ac, int i, int j, boolean flag,      Writer writer) throws IOException {  writer.write(ac, i, j);         }     });        marshaller.marshal(root, new OutputStreamWriter(System.out));    }}

input.xml /输出

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><root>    <name><![CDATA[<h1>kshitij</h1>]]></name>    <surname><![CDATA[<h1>solanki</h1>]]></surname>    <id><![CDATA[0]]></id></root>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/573634.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号