解析XML

package com.jstelecom.telepedia.common;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.net.URL;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

/**
* @author liujy
*
*/
public class Test {

/**
* @param args
*/
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuider;
Document document;



public String getRss(String url) throws Exception{

StringBuffer stringBuffer=new StringBuffer();
documentBuider = dbf.newDocumentBuilder();
URL file = new URL(url);
document = documentBuider.parse(file.openStream());
String xmlString="<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
NodeList items = document.getElementsByTagName("item");
stringBuffer.append("<DataObject>\n");
for (int i = 0; i < items.getLength(); i++) {
Element currentElement = (Element) items.item(i);
Node linkNode = currentElement.getElementsByTagName("link")
.item(0);
String link = linkNode.getFirstChild().getNodeValue();
Node titleNode = currentElement.getElementsByTagName("title")
.item(0);
String title = titleNode.getFirstChild().getNodeValue();
Node descriptionNode = currentElement.getElementsByTagName(
"description").item(0);
String description = descriptionNode.getFirstChild()
.getNodeValue();
description = description.trim().replaceAll(
"\\&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "");

stringBuffer.append("<news>\n");
stringBuffer.append("<title><![CDATA[");
stringBuffer.append(title);
stringBuffer.append("]]></title>\n");
stringBuffer.append("<link><![CDATA[");
stringBuffer.append(link);
stringBuffer.append("]]></link>\n");
stringBuffer.append("<description><![CDATA[");
stringBuffer.append(description);
stringBuffer.append("]]></description>\n");
stringBuffer.append("</news>\n");

}
stringBuffer.append("</DataObject>");

xmlString=xmlString+stringBuffer.toString();

return xmlString;
}


public void savaFile(String xmlString,String fileName) throws Exception{
FileWriter output;
// properties.load("test.properties");

output = new FileWriter("c:\\test\\"+fileName+".txt");

// output = new FileWriter(properties.getProperty("newspaper.url")+fileName+".txt");
BufferedWriter bw = new BufferedWriter(output);
bw.write(xmlString);
bw.close();
}

public static void main(String[] args) {
Test test=new Test();
String xmlString="";
try {
xmlString=test.getRss("http://news.baidu.com/n?cmd=1&class=internews&tn=rss&sub=0");
test.savaFile(xmlString, "filename");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值