当前位置: 首页 > 面试题库 >

将XML转换为在文本周围具有CDATA的最佳方法(Java)

谈桐
2023-03-14
问题内容

我有一个奇怪的要求,我需要获取一些xml并重新编写它,以便将文本节点包装在CDATA中(这是用于不允许正常转义的客户端的)。

似乎所有普通的XML库dom4j,jdom,java xml都没有对此的内置支持。有任何想法吗?我可以为此使用XSLT吗?

我不太清楚。我将从这里开始:

<foo>This has an &amp; escaped value</foo>

我需要做的是将其转换为:

<foo><![CDATA[This has an & escaped value]]></foo>

-戴夫


问题答案:

只要a)您需要输出的所有文本都在元素中,b)您只关心文本节点,c)您知道所有包含文本的元素的名称,并且d,您就可以使用XSLT完成此操作)可以将所有这些输出元素中的任何文本作为CDATA发出。如果所有这些情况都成立,那么您可以编写一个标识转换并将此元素添加到其中:

<xsl:output method="xml" cdata-section-elements="elm1 elm2 elm3..."/>

请参阅有关此主题的W3C XSLT建议。



 类似资料:
  • 谈到XSLT,我是一个完全的新手,所以我很难找到解决问题的方法。 我有以下来自PeopleSoft的XML: PeopleSoft"有益地"将所有文本数据放入CDATA部分,我想删除CDATA,并将字符串放在正常的文本节点中: 有人能在我需要创建我想要的输出的XSLT上给我一个正确的方向吗?非常感谢提前

  • 问题内容: 有什么好的工具可以在Java中快速轻松地将XML转换为JSON? 问题答案: Java中的 JSON有一些很棒的资源。 Maven依赖项: XML.java 是您要寻找的课程: 输出为:

  • 最近我一直在使用Altova Map Force构建XSL转换,我遇到了一个问题。为了创建一个有效的XML输出文件(从一个输入文本文件创建,该文件非常简单),它需要包含一些xmlns属性标记。 不幸的是,我无法在Map Force或我的数据转换工具(由基于Saxon的客户机构建)中找到有效的方法(修改了输出xsd模式定义和属性强制)。因此,我的解决方案是将生成的XML解析到另一个(最终)转换器中,

  • 问题内容: 在Java中为XML输出编码字符串的推荐方法是什么。字符串可能包含“&”,“ <”等字符。 问题答案: 很简单:使用XML库。这样,实际上将是正确的,而不需要XML规范的详细知识。

  • 问题内容: 我有一个我想完全输出为String的。本质上,我想使用由制表符分隔的每个元素按顺序输出。有什么快速的方法可以做到这一点吗?你可以遍历它(或删除每个元素)并将其连接为字符串,但我认为这会非常慢。 问题答案: 基本上,使用循环来迭代是唯一的选择: 不要使用此代码,请继续阅读此答案的底部,以了解为什么不希望使用此代码,以及应该使用哪个代码代替: 实际上,字符串串联就可以了,因为javac编译

  • 我想构建一个Android应用程序,它可以识别语音并将其转换为发音文本(即比较特殊单词和用户语音之间的真实发音或口音)。我只知道可以创建语音到文本。我想转换用户说的任何单词。 有没有API来做?如果没有,请帮助我如何实现它。