xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<!--oracle数据库连接!-->
<OracleSource>
   <driver>oracle.jdbc.driver.OracleDriver</driver>
   <url>jdbc:oracle:thin:@192.168.1.105:1521:cms</url>
   <username>cmsuser</username>
   <password>xyz</password>
</OracleSource>
<!--mysql数据连接!-->
<MySQLSource><driver>om.mysql.jdbc.Driver</driver><url>jdbc:mysql://192.168.1.105:3308/cadtest</url><username>root</username><password>founder123</password></MySQLSource>
<!-- 标记,判断使用哪一个数据库 -->
<Index>1</Index>
</config>我用java读xml文件
如果<OracleSource></OracleSource>之间的数据如果不换行,我能读出来,如果里边的数据换行的话,就读不出来啦。为什么 。
例如<OracleSource></OracleSource>之间的数据读不出来,
<MySQLSource></MySQLSource>之间的数据能读出来。

解决方案 »

  1.   

    你是用什么读xml.?jdom.?还是dom4j.?
    你试试用正则表达式把换行都去掉看看.!
      

  2.   

    应该不存在你说的那个问题..
    至少如果是用的dom4j的话,换不换行是没有影响的.!  没用过jdom.不太清楚.!
    如果不让你换行就不换呗.  反正我知道写xml写进去全部都是没有换行的.!
      

  3.   

    dom的解析器有没有什么属性设置呀
      

  4.   

    大家一起来学习学习,这是我以前看过来,找出来发一下
    使用Digester
    1.新建自定义节点类Bean如:package com.test;public class Person {
     private String id;
     private String name;
     private int age;
     public String getId() {
      return id;
     }
     public void setId(String id) {
      this.id = id;
     }
     public String getName() {
      return name;
     }
     public void setName(String name) {
      this.name = name;
     }
     public int getAge() {
      return age;
     }
     public void setAge(int age) {
      this.age = age;
     }
     
    }
    2.创建xml文件<?xml version="1.0" encoding="UTF-8"?>
    <list>
     <person>
      <id>001</id>
      <name>小张</name>
      <age>20</age>
     </person>
     <person>
      <id>002</id>
      <name>王五</name>
      <age>28</age>
     </person>
    </list>3.在项目中导入org.apache.commons.digester包,解析类如下:package com.test;import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;import org.apache.commons.digester.Digester;
    import org.xml.sax.SAXException;public class ParseBean { /**
      * @param args
      */
     public void  parseFile(File f){
      
      ArrayList list = null;
      Digester d = new Digester();
      //不采用与DTD文件进行验证
      d.setValidating(false);  
      //创建父节点
      d.addObjectCreate("list", java.util.ArrayList.class);   
      
      d.addObjectCreate("list/person", com.test.Person.class);   
      //注入属性
            d.addBeanPropertySetter("list/person/id");   
            d.addBeanPropertySetter("list/person/name");   
            d.addBeanPropertySetter("list/person/age");
            //如果有下一个节点继续
            d.addSetNext("list/person", "add");
            
           try {
       list = (ArrayList)d.parse(f);
     } catch (IOException e) {
      e.printStackTrace();
     } catch (SAXException e) {
      e.printStackTrace();
     }
      if(!list.isEmpty()){
       for(int i = 0;i < list.size();i++){
        Person p = (Person)list.get(i);
        System.out.println("编号:" + p.getId() + "名字:"+ p.getName()+ "年龄:"+ p.getAge());
       }
      }
     }
     public static void main(String[] args) {
      
      new ParseBean().parseFile(new File("E:\\myworkspace\\parseXml\\myfile.xml"));
     }}
     解析结果:编号:001名字:小张年龄:20
    编号:002名字:王五年龄:28