62,614
社区成员
发帖
与我相关
我的任务
分享
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
public class ReadXml {
public static void main(String[] args) throws SAXException {
// TODO Auto-generated method stub
// 文件路径
String path = "C:\\chinese.xml";
new ReadXml().readXml(path);
}
public void readXml(String filePath) throws SAXException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
System.err.println(pce); // 出异常时输出异常信息,然后退出,下同
System.exit(1);
}
Document doc = null;
try {
doc = db.parse(filePath);
} catch (DOMException dom) {
System.err.println(dom.getMessage());
System.exit(1);
} catch (IOException ioe) {
System.err.println(ioe);
System.exit(1);
}
Element root = doc.getDocumentElement();
NodeList chars = root.getElementsByTagName("CountryRegion");
for (int i = 0; i < chars.getLength(); i++) {
Element element = (Element) chars.item(i);
// 根据节点获取每一个节点的属性
System.out.println(element.getAttribute("Name").toString());
}
}
}
//正则提取
public static List<String> getContext2() {
String html="kk<p>123456</p>ssss";
List<String> resultList = new ArrayList<String>();
Pattern p = Pattern.compile("<p>([^</p>]*)");//匹配<p>开头,</p>结尾的文档
Matcher m = p.matcher(html );//开始编译
while (m.find()) {
resultList.add(m.group(1));//获取被匹配的部分
}
return resultList;
}
截取的<p>改成你的那个
然后处理返回的list就可以了
public static void main(String[] args) throws Exception {
String str = "<fieldInfo><fieldChName>人名</fieldChName><fieldEnName>Name</fieldEnName><fieldContent>张三</fieldContent></fieldInfo><fieldInfo><fieldChName>地址</fieldChName><fieldEnName>Address</fieldEnName><fieldContent>北京</fieldContent></fieldInfo>";
System.out.println(getAddress(str));
}
public static String getAddress(String src){
int offset = 0;
while(offset < src.length()){
int fieldInfoStart = src.indexOf("<fieldInfo>",offset);
int fieldInfoEnd = src.indexOf("</fieldInfo>",offset);
offset += fieldInfoEnd+"</fieldInfo>".length();
if(fieldInfoStart <= -1 || fieldInfoEnd <= -1){
break;
}
String fieldInfo = src.substring(fieldInfoStart,fieldInfoEnd);
int fieldEnNameStart = fieldInfo.indexOf("<fieldEnName>");
int fieldEnNameEnd = fieldInfo.indexOf("</fieldEnName>");
if(fieldEnNameStart <=-1 || fieldEnNameEnd<=-1){
break;
}
String fieldEnName = fieldInfo.substring(fieldEnNameStart+"<fieldEnName>".length(),fieldEnNameEnd);
int fieldContentStart = fieldInfo.indexOf("<fieldContent>");
int fieldContentEnd = fieldInfo.indexOf("</fieldContent>");
if(fieldContentStart <=-1 || fieldContentEnd <= -1){
break;
}
String fieldContent = fieldInfo.substring(fieldContentStart+"<fieldContent>".length(),fieldContentEnd);
if(fieldEnName.equals("Address")){
return fieldContent;
}
}
return "";
}