高分求助!!热心的朋友顶一下,也给分!来的都有

tiger_wkh52741 2005-09-07 05:27:05
好久没有碰java了,已经跟不上java的潮流了,在下有个问题,不知道哪位高人帮忙解答一下,帮偶解决了,另送666分!

问题如下:

在java中用String类型存储下面的信息:

<Record>
<Item Name="Customer_Code">30916156</Item>
<Item Name="Customer_Name">京洛有限公司</Item>
<Item Name="Sign_Area_Name">1000</Item>
<Item Name="Customer_Admin_Name">潘玉芳</Item>
<Item Name="Customer_State"> </Item>
</Record>
<Record>
........
</Record>

大家可以看到上面的信息虽然是以String类型存储的,不过和xml类似,我只想把上面的信息中的value得到,当然在<Record></Record>标记之间代表一条记录.在下不知道怎么来解析这个String类型的文件,哪位帮忙解答一下,感激不尽!:)
偶的想法:(可能有些笨拙:) )
1.直接用String的方法解析.但是怕累死,呵呵
2.将该String转换成*.xml文件形式,再进行xml的解析.唉!好麻烦
3.来到这里求助大家,希望能得到更好的解决方案!



注:若在下的问题没有说清楚,请各位及时发问,呵呵,偶的语文水平一般!谢谢关注!
...全文
210 点赞 收藏 34
写回复
34 条回复
rukhwill 2005年09月08日
沙发 还是转换成xml的方法有通用性
回复 点赞
不争馒头 2005年09月08日
转换成InputStream,再处理试试
回复 点赞
sunxutx 2005年09月08日
解析很麻烦 有不愿意存成xml
那就把string在运行的时候生成一个xml文件供调用
解析结束后删掉好吧
回复 点赞
j_d 2005年09月08日
up
回复 点赞
numen_wlm 2005年09月08日
up
回复 点赞
kingofhawks 2005年09月08日
关注呵呵,直接写成xml文件吧~~
回复 点赞
famousboy_1983 2005年09月08日
jdom好像可以直接解析字符串,不需要从文件里读
回复 点赞
layueer 2005年09月08日
up
回复 点赞
yema55 2005年09月08日
dom4j, 可以直接解析xml字符串,不用存成文件,xml头部可以自己加上去
回复 点赞
lisen512 2005年09月08日
新手,不太明白,帮忙UP了
回复 点赞
jxdn_yang 2005年09月08日
ding
回复 点赞
红酒咖啡 2005年09月08日
对呀,,,在文件的转换方面是真的有点不懂的!!!!
回复 点赞
kingofhawks 2005年09月08日
楼上的,SAXReader.read(String)好象还是去读文件的吧,String参数不是楼主要解析的内容啊.
回复 点赞
kingdoom 2005年09月08日
up
回复 点赞
kingofhawks 2005年09月08日
不知道是不是可以创建一个类,负责把String序列化成.xml的文件,没有试过呵呵,不过我想序列化应该是可以转换成任何文件的呀.
回复 点赞
bluelily22 2005年09月08日
用dom4j
SAXReader reader=new SAXReader();
Document document=reader.read(String arg0);
可以将string转换成Document对象的,然后你操作Document很方便的
回复 点赞
tiger_wkh52741 2005年09月08日
大家好,开始的问题解决了,把部分code拿出来给大家共享一下,共享的code并不代表最优的,哪位朋友想研究可以继续优化:
// 前部分代码省略...
//可以用dom来解析流文件,的确省去了不少力气,:)
//String 类型转换成InputStream类型,allXml代表上文类似xml文件的字符串,这里的allXml已经是标准的xml形式,不过是自己拼出来的.
StringBufferInputStream buf = new StringBufferInputStream(allXml);
InputStream input = (StringBufferInputStream)buf;
//打印xml字符串
System.out.println(allXml);

//create工厂实例并转换成document实例
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder parser = factory.newDocumentBuilder();
//解析流文件
Document doc = parser.parse(input);
Element _element = doc.getDocumentElement();
//存储<item>值list
ArrayList valueList = new ArrayList();
//存储<record>list,也就是记录数
ArrayList recordList = new ArrayList();
//得到标签<record>list
NodeList rlist=_element.getElementsByTagName("Record");
//得到每个<record>的<Item>值
for(int j=0;j<rlist.getLength();j++){
Element _el = (Element)rlist.item(j);
NodeList nlist=_el.getElementsByTagName("Item");
int length = nlist.getLength();
for (int i = 0; i < length; i++) {
String nodeValue = nlist.item(i).getFirstChild().getNodeValue();
//将<Item>值存储到valueList中
valueList.add(i,nodeValue);
System.out.println(nodeValue);
}
//将<record>记录存储到recordList中
recordList.add(valueList);
}


该方法能解决我的问题,但是不知道有没有更好的方法,若哪位朋友知道,请不要吝啬啊!:)

不过,目前本人不知道如何解析 含有中文的xml文件,哪位大虾知道,请指导一下在下,不胜感谢!
回复 点赞
sunnyboy409 2005年09月08日
帮顶一下!
回复 点赞
saiche05 2005年09月08日
ing
回复 点赞
tiger_wkh52741 2005年09月08日
谢谢大家的积极讨论:

to justinchen() : 这个建议不错,可以试一下!

如果我可以解析xml文件,那么xml文件中中文汉字的转换问题,有没有哪些要注意的地方!!

因为我解析出来后,不能解析中文!
回复 点赞
发动态
发帖子
Java EE
创建于2007-09-28

3.7w+

社区成员

22.5w+

社区内容

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区公告
暂无公告