读入xml文件可以使用SystemXml命名空间下的XMLDocument等类库来完成。
在XML中,有一些符号作为XML 的标记符号,一些特定情况下,属性值必须带有这些特殊符号。 下面主要是讲解一些常用的特殊符号的处理
例一: 双引号的使用。
双引号作为XML 属性值的开始结束符号,因此无法在值中直接使用"" 处理方式可以分为两种。
a: 属性值中没有'(单引号) ,那么可以用单引号'' 作为属性值的开始结束符号
<add key="IPhone" value="apple"/> 属性值为 ("apple")
解决: <add key="IPhone" value=’"apple"‘/>
b: 属性值中有'(单引号) ,也有双引号。 如属性值为 ("'apple")
<add key="IPhone" value=""'apple""/>
下表为 XML 标记使用的字符列出了五种内置实体。
如果字符可能会使 XML 分析器错误地解释文档结构,请使用实体,而不要键入字符。' 和 " 实体引用最常用在属性值中。
在MyBatis中可以用以下的方式来传递多个参数1 用javautilMap来传递, Code 如下public List<User> getAllUsersByUserName(String username, int start, int limit){ Map<String,Object> params = new HashMap<String, Object>(3); paramsput("username",username); paramsput("start",start); paramsput("limit",limit); return userMappergetAllUsersByUserName(params); } 对应的XXMapperxml文件中如下:<select id="getAllUsersByUserName" parameterType="map" resultType="User"> SELECT u FROM User u WHERE uusername LIKE #{username} '%' LIMIT #{start}, #{limit} </select>2 用JavaBean的方式来传递, Code如下:public List<User> getUsersByUserName(String username){ User user = new User(); usersetUsername(username); return userMappergetUserByUsername(user); }对应的XXMapperxml文件中如下:<select id="getAllUsersByUserName" parameterType="User" resultType="User"> SELECT u FROM User u WHERE uusername = #{username} </select>OK, 就介绍这两种方法吧!!!\ 解析简单xml文档的基本步骤就是如此简单,至于复杂的XML文档,解析的步骤,尤其是创建DOM树的方法有点不同,在这里便不作介绍。接下来,来讲一下困扰我多天的中文解析问题。我们知道,Xerces C++默认只支持节点名中文,至于节点值,属性值则不支持,即使解析出来的也是乱码,所以需要自己解决。在这里,我们选用UTF-8编码格式的XML文档。先来看一下乱码的原因,由于XML解析器解析的字符串都是 XMLCh(typedef unsigned int XMLCh)格式的,一个字符占用一个字节,而汉字字符确要占用两个字节。故若不做适当的转换,汉字的输出结果就变成乱码了。在 >推荐使用xstream,定义好xstream的格式就行,如name=”param1”内部属性。value of param1 value of param2这个内部集合等,可以很方便地将xml转换为对象和将对象转换为xml欢迎分享,转载请注明来源:内存溢出
评论列表(0条)