<(| 哪位知道经纬娱乐平台分红制度会多点呢?是申博娱乐吗? |)&gt

dom4j写xml时&会被转义成&的解决方法? - ITeye问答
我通过dom4j生产xml文档时,如果我的文档里面有&、&等特殊字符的话,则会对其进行转义,有什么方法可以避免吗?
原来的:
&?xml version="1.0" encoding="ISO8859_1"?&
&QUERY name="query" bo="project_versions"&
&&& &ITEMS name="columns"&
&&&&&&& &COLUMN bo="project_versions" name="name" width="0"/&
&&&&&&& &COLUMN bo="project_versions" name="description" width="0"/&
&&&&&&& &COLUMN bo="project_versions" name="project_id" width="0"/&
&&&&&&& &COLUMN bo="project_versions" name="hs_creator" width="0"/&
&&&&&&& &COLUMN bo="project_versions" name="hs_created_time"
&&&&&&& width="0"/&
&&& &/ITEMS&
&&& &ITEMS name="filters"&
&&&&&&& &FILTER type="cf" op="1" not="false"&
&&&&&&&&&&& &FILTER type="f" bo="project_versions"
&&&&&&&&&&& field="hs_created_time" func="4" argument="false"
&&&&&&&&&&& not="false" op="8" value="=T_LAST_W(1)"/&
&&&&&&&&&&& &FILTER type="f" bo="project_versions" field="hs_creator"
&&&&&&&&&&& func="0" argument="false" not="false" op="0"
&&&&&&&&&&& value="tom,neil,jerry"/&
&&&&&&&&&&& &FILTER type="f" bo="project_versions" field="hs_modifier"
&&&&&&&&&&& func="0" argument="false" not="false" op="0"
&&&&&&&&&&& value="ted,jerry"/&
&&&&&&&&&&& &FILTER type="f" bo="project_versions" field="description"
&&&&&&&&&&& func="0" argument="false" not="false" op="6"
&&&&&&&&&&& value="china 中国"/&
&&&&&&& &/FILTER&
&&& &/ITEMS&
&&& &ITEMS name="orderby"&
&&&&&&& &COLUMN bo="project_versions" name="description" asc="true"/&
&&&&&&& &COLUMN bo="project_versions" name="name" asc="false"/&
&&& &/ITEMS&
&&& &ITEMS name="groupby"/&
&/QUERY&
新生成的,需要通过dom4j写入到数据库的:
&?xml version="1.0" encoding="ISO8859_1"?&
&QUERY name="query" bo="project_versions"&
& &ITEMS name="columns"&
&&& &COLUMN bo="project_versions" name="name" width="0"/&&
&&& &COLUMN bo="project_versions" name="description" width="0"/&&
&&& &COLUMN bo="project_versions" name="project_id" width="0"/&&
&&& &COLUMN bo="project_versions" name="hs_creator" width="0"/&&
&&& &COLUMN bo="project_versions" name="hs_created_time" width="0"/&
& &/ITEMS&&
& &ITEMS name="filters"&
&&& &FILTER type="cf" op="1" not="false"&
&&&&& &FILTER type="f" bo="project_versions" field="hs_created_time" func="4" argument="false" not="false" op="8" value="=T_LAST_W(1)"/&&
&&&&& &FILTER type="f" bo="project_versions" field="hs_creator" func="0" argument="false" not="false" op="0" value="tom00,neil00,jerry00"/&&
&&&&& &FILTER type="f" bo="project_versions" field="hs_modifier" func="0" argument="false" not="false" op="0" value="ted00,jerry00"/&&
&&&&& &FILTER type="f" bo="project_versions" field="description" func="0" argument="false" not="false" op="6" value="china 中国"/&
&&& &/FILTER&
& &/ITEMS&&
& &ITEMS name="orderby"&
&&& &COLUMN bo="project_versions" name="description" asc="true"/&&
&&& &COLUMN bo="project_versions" name="name" asc="false"/&
& &/ITEMS&&
& &ITEMS name="groupby"/&
问题补充:飞雪无情 写道把你的特殊字符替换了。下面是常用的五种
下面是五个在XML文档中预定义好的实体:
&&& 小于号
&&& 大于号
比如你想输出&,那你的xml中要写成“&”
当然你这个值是写在属性里的,是value=""这样的形式,如果是一个区域断的话可以用XML CDATA,如&FILTER&&value&&![CDATA[china 中国]]&&/value&&/FILTER&就ok了
我是对原来的xml进行解析,通过Element的attribute("value");方法取得xml中和value对应的Attribute,然后直接通过Attribute的setValue()设置进去值,我如果setValue时使用&![CDATA[]]&则其中的&也会被转义,如下为效果:
&FILTER type="cf" op="1" not="false"&
&&&&& &FILTER type="f" bo="project_versions" field="hs_created_time" func="4" argument="false" not="false" op="8" value="&![CDATA[=T_LAST_W(1)]]&"/&&
&&&&& &FILTER type="f" bo="project_versions" field="hs_creator" func="0" argument="false" not="false" op="0" value="&![CDATA[tom00,neil00,jerry00]]&"/&&
&&&&& &FILTER type="f" bo="project_versions" field="hs_modifier" func="0" argument="false" not="false" op="0" value="&![CDATA[ted00,jerry00]]&"/&&
&&&&& &FILTER type="f" bo="project_versions" field="description" func="0" argument="false" not="false" op="6" value="&![CDATA[china 中国]]&[color=red][/color]"/&
&&& &/FILTER&
问题补充:我实际上只能拿到上面的xml格式的文件,而无法定义它的生成样式,比如使用:
&FILTER&&value&&![CDATA[china 中国]]&&/value&&/FILTER&
我没办法来定义该格式
问题补充:如果是
&root&
&element attributeName="attributeValue"&test&/element&
&element attributeName="attributeValue"&test&/element&
&/root&
在test中有某些特殊字符的话,可以通过setEscapeText(false)来使避免转义,但是如在在attributeName对应的attributeValue中有'& ' '&'等符合的话转义就失效了。
我是通过attribute.setValue()设置,效果即:value=“here”也就是说需要转义的字符在value对应的here处
问题补充:飞雪无情 写道那你可以我说的第一种方式,替换法。把你的值china 中国替换成
china 中国这个值set进去就没有问题了吧
这种方式是不行的,你看一下我最新的补充,仍然会转义&符号
采纳的答案
这是个问题,还在Attribute里的。你还之用setValue()。那这样可不可以,把你修改好的,新生成的xml转化成xml文本,然后替换里面的&为&就好了!
那你可以我说的第一种方式,替换法。把你的值china 中国替换成
china 中国这个值set进去就没有问题了吧
需要设置:
& xw.setEscapeText(false); // 是否转义
更详细的信息
参考下! 人家写的很不错的!
dom4j在输出或保存xml时的XMLWriter类,可以通过setEscapeText方法设置是否转义
把你的特殊字符替换了。下面是常用的五种
下面是五个在XML文档中预定义好的实体:
&&& 小于号
&&& 大于号
比如你想输出&,那你的xml中要写成“&”
当然你这个值是写在属性里的,是value=""这样的形式,如果是一个区域断的话可以用XML CDATA,如&FILTER&&value&&![CDATA[china 中国]]&&/value&&/FILTER&就ok了
已解决问题
未解决问题}

我要回帖

更多关于 经纬娱乐平台分红制度 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信