您的位置:首页 > 其它

CDATA

2016-03-24 10:16 211 查看
xml里面的value值,不允许出现"<"字符

可以按下面方法来解决:

<!-- 换行符重定义-->

<bean name="newEndsign" class="java.lang.String">

<constructor-arg type="java.lang.String">

<value><![CDATA[</br>]]></value>

</constructor-arg>

</bean>

java取值方法和之前一样,没有差别。

----------------------------------------------------

相关扩展(其他地方摘录):

CDATA

术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。

在 XML 元素中,"<" 和 "&" 是非法的。

"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。

"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。

某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。

CDATA 部分中的所有内容都会被解析器忽略。

CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:

<script>

<![CDATA[

function matchwo(a,b)

{

if (a < b && a < 0) then

{

return 1;

}

else

{

return 0;

}

}

]]>

</script>

在上面的例子中,解析器会忽略 CDATA 部分中的所有内容。

关于 CDATA 部分的注释:

CDATA 部分不能包含字符串 "]]>"。也不允许嵌套的 CDATA 部分。

标记 CDATA 部分结尾的 "]]>" 不能包含空格或折行。

------------------------------------------------------

读取:

比如下面的XML

<?xml version="1.0" encoding="GBK"?>

<E1>

<Code>T</Code>

<A>4</A>

<St>

<![CDATA[<?xml version="1.0" encoding="GBK"?>

<Ss>

<I>100</I>

<So>

<Sq>0</Sq>

<SD>202260915</SD>

</o>

</Ss>]]>

</St>

</E1>

我想读取

<Ss>

<I>100</I>

<So>

<Sq>0</Sq>

<SD>202260915</SD>

</o>

</Ss>

除了用字符串的方式处理外,还有没有其他更好的方法?!

XMLDocument1.DocumentElement.ChildNodes.Nodes['St'].NodeValue就行了。

-----------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: