字符串是下面这样的:
<fieldInfo><fieldChName>人名</fieldChName><fieldEnName>Name</fieldEnName><fieldContent>张三</fieldContent></fieldInfo>
<fieldInfo><fieldChName>地址</fieldChName><fieldEnName>Address</fieldEnName><fieldContent>北京</fieldContent></fieldInfo>
我想找到“地址”那一行里,fieldContent标签中的“北京”?
<fieldInfo><fieldChName>人名</fieldChName><fieldEnName>Name</fieldEnName><fieldContent>张三</fieldContent></fieldInfo>
<fieldInfo><fieldChName>地址</fieldChName><fieldEnName>Address</fieldEnName><fieldContent>北京</fieldContent></fieldInfo>
我想找到“地址”那一行里,fieldContent标签中的“北京”?
解决方案 »
- openldap 如何建带二进制证书的BASE DN
- 判断一个文件夹是另一个文件夹的子文件夹,相隔多层如何判断
- 防火墙——攻击性信息
- 在myeclipse中如何将JTable中的内容导出成excel,急!急
- java 基础提问
- 一个关于Date的问题
- 看了那么久的JAVA,都分不清几个概是如何理解的???小女子还得请教各位帮帮解释喔!先谢了!!!!!
- 【求助】ssl TrustManager 是否默认可以信任任何证书的?
- 怎么察看 Robocode 中的out.println("……");输出的内容?
- 安装j2sdkee-1_3_1-win.exe总是出错
- 【高分求解】UTF8编码JSP通过GET方式接受GBK乱码
- 求给我讲解下红色部分的代码
这个结构应该是读取XML比较好
2、如果是xml文件,你看看dom解析吧,根据节点值判断,可以得到,看看API,就会了
这个结构应该是读取XML比较好 ++
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());
}
}
}
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 "";
}
//正则提取
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就可以了