首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用JAK kml库编组时保持字符串格式

如何在使用JAK kml库编组时保持字符串格式
EN

Stack Overflow用户
提问于 2013-11-26 22:55:01
回答 2查看 847关注 0票数 4

我想给我的位置标记添加一个描述,这是一系列的html。当我运行编组程序时,我得到一堆特殊的字符串,而不是特殊的字符。也就是说,我的最终文件看起来不像CDATA<html>,而像CDATA&lt;html&gt;

我不想覆盖JAK编组程序,所以我希望有一种简单的方法来确保我的字符串被带到文件中。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-11-26 23:16:25

封送处理实际上转义了特殊字符,"转换为&quot;&转换为&amp;<转换为&lt;

我的建议是使用字符串的replace函数,它实际上有助于将转义字符重新转换回正常字符。

代码语言:javascript
复制
    try {
            StringWriter sw = new StringWriter();
            return marshaller.marshal(obj, sw);
        } catch (JAXBException jaxbe) {
            throw new XMLMarshalException(jaxbe);
        }

使用sw对象,使用sw.toString().replace()将更改后的字符替换回原始字符。

这将确保你拥有与你想要的东西同步的东西。

希望这能帮上忙..

票数 1
EN

Stack Overflow用户

发布于 2015-12-03 05:48:51

  1. Generic solution

创建实现CharacterEscapeHandler的NoEscapeHandler (查看com.sun.xml.bind.marshaller.DumbEscapeHandler示例

代码语言:javascript
复制
import java.io.IOException;
import java.io.Writer;

import com.sun.xml.bind.marshaller.CharacterEscapeHandler;

public class NoEscapeHandler implements CharacterEscapeHandler {

    private NoEscapeHandler() {}  

    public static final CharacterEscapeHandler theInstance = new NoEscapeHandler(); 

    public void escape(char[] ch, int start, int length, boolean isAttVal, Writer out) throws IOException {
        int limit = start+length;
        for (int i = start; i < limit; i++) {
            out.write(ch[i]);
        }
    }
}

然后设置封送拆收器的属性。

代码语言:javascript
复制
marshaller.setProperty("com.sun.xml.bind.characterEscapeHandler", NoEscapeHandler.theInstance);

或者使用DataWriter

代码语言:javascript
复制
StringWriter sw = new StringWriter();
DataWriter dw = new DataWriter(sw, "utf-8", NoEscapeHandler.theInstance);

使用XmlStreamWriter和jaxb框架时的

  1. 解决方案

streamWriterFactory.setProperty("escapeCharacters",XMLOutputFactory streamWriterFactory = XMLOutputFactory.newFactory();final false);

From here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20220438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档