![]() |
1
12
我的队友发现的解决方案:
不要将xmlfile传递给marshal(),而是传递数据编写器,它既知道编码,也知道适当的转义处理程序(如果有)。 注意:由于datawriter和dumbleescaphandler都在com.sun.xml.internal.bind.marshaller包中,所以必须引导javac。 |
![]() |
2
9
我刚将自定义处理程序设置为如下类:
在marshaller方法中,只需调用:
它很好用。 |
![]() |
3
4
我已经对您的示例进行了一些尝试,并调试了JAXB代码。而且它似乎是关于使用UTF-8编码的一些特定的东西。的EscapeHandler属性
请注意,在设置中的顶部部分
自定义
|
![]() |
4
3
@ 埃利奥特 您可以使用此命令使封送拆收器进入CharacterEscape函数。 它是wierd,但如果你设置它就会工作” 统一码 “而不是”utf-8“。 在设置CharacterEscapeHandler属性之前或之后添加此项。
然而 不要仅仅通过检查控制台来确定 在您的IDE中,因为应该根据工作区编码来显示它。最好也从这样的文件中进行检查:
|
![]() |
5
3
我想说最简单的方法就是
|
![]() |
6
2
我发现了同样的问题 我用xmlwriter修复了这个问题 在xmlWriter文件中,有一个方法isescapetext()和setescapetest 默认为真 如果不希望在<到<之间进行转换,则需要在编组期间设置EscapeStest(false)
这种变化 writer.setEscapeText(错误); 修正了我的问题 希望这个变化对你有帮助 |
![]() |
7
1
似乎有可能 Sun's JAXB implementation 尽管我自己还没做。 |
![]() |
8
1
我检查了XML规范。 http://www.w3.org/TR/REC-xml/#sec-references 表示“格式良好的文档不需要声明以下任何实体:amp、lt、gt、apos、quot。”因此,遗留系统使用的XML解析器似乎不一致。 (我知道这并不能解决你的问题,但能说出哪个部件坏了至少是件好事)。 |
![]() |
9
1
在阅读其他帖子后,这对我很有用:
|
![]() |
10
0
很有趣,但是有了弦你可以试试
至少对我来说,这并不能逃避引用。 |
![]() |
11
0
当使用Sun的Marshaller实现时,最简单的方法是提供您自己的CharacterEscapeEncoder实现,它不进行任何转义。
用
|
![]() |
12
0
出于某种原因,我没有时间去了解,这对我来说很有用。
与使用相反
我建议你试试,然后 @Javatar said ,检查它们是否正在转储到文件,使用:
用一个像样的文本编辑器打开它 notepad++ |
![]() |
13
0
我建议不要使用
如何编写
|
![]() |
14
0
在尝试了上述所有的解决方案之后,最终得出了结论。 通过自定义转义处理程序的封送逻辑。
自定义转义处理程序如下:
|
|
user29759326 · 如何返回递归函数中的最后一个值? 3 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 3 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 3 月前 |
![]() |
rudraraj · java中未声明最终变量 4 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 4 月前 |