dom4j解析dom4j xml字符串串报 [Document: name null]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&&&完java dom4j解析xml字符串问题我想读取并输出图片中框中的这一段字符串,如果是末节点是可以读取出来,但是节点中有子节点的话,这个就不知道怎么读取了1个牛币所有回答列表(5)&LV4给你个思路,通过java正则来替换所有标签&&,示例如下:
String xml=&&a&& +
&&b&b&/b&& +
&&c&c&/c&& +
&&d&c&/d&& +
&&f&f&/f&& +
&&h&h&/h&& +
String ret=xml.replaceAll(&&\\/?.*?&&, & &);
System.out.println(ret);结果输出:& b &c &c & f &h &&思路不要局限在用java的xml框架去做,把xml当做普通字符串通过正则去查找,替换不更强大么?最佳答案这就是老牛和新菜的区别啊!自愧不如
采用递归也可以...
public void treeWalk(Element element) {
for ( int i = 0, size = element.nodeCount(); i & i++ ) {
Node node = element.node(i);
if ( node instanceof Element ) {
treeWalk( (Element) node );
// do something....
}我今天做了一个类似的功能,不过用的是jdom。我把我的思路讲一下:Element parameters = root.getChild(&PARAMETERS&);Element users= parameters .getChild(&users&);List userList = users.getChildren(&user&);userList已经是一个Element的集合了。谢谢各位了。目前我暂时用的方法是 采用最大码官方的建议,用正则判断截取末端的节点,然后再用dom4j来解析XML类型的对象,这个方法挺好的等等等完等等等等等等等完最热搜索问答话题编程语言基础Web开发数据库开发客户端开发脚本工具游戏开发服务器软硬件开源组件类库相关问答等等等完等完等完等等完等最近浏览暂无贡献等级暂无贡献等级暂无贡献等级&LV2&LV2扫描二维码关注最代码为好友"/>扫描二维码关注最代码为好友<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&dom4j解析xml字符串实例
//先加入dom4j.jar包&
import java.util.HashMimport java.util.Iimport java.util.M
import org.dom4j.Dimport org.dom4j.DocumentEimport org.dom4j.DocumentHimport org.dom4j.E
publicclass Test {
publicvoid readStringXml(String xml) {
Document doc =null;
// 读取并解析XML文档
// SAXReader就是一个管道,用一个流的方式,把xml文件读出来
// SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文档
// Document document = reader.read(new File("User.hbm.xml"));
// 下面的是通过解析xml字符串的
doc = DocumentHelper.parseText(xml); // 将字符串转为XML
Element rootElt = doc.getRootElement(); // 获取根节点
System.out.println("根节点:"+ rootElt.getName()); // 拿到根节点的名称
Iterator iter = rootElt.elementIterator("head"); // 获取根节点下的子节点head
// 遍历head节点while (iter.hasNext()) {
Element recordEle = (Element) iter.next();
String title = recordEle.elementTextTrim("title"); // 拿到head节点下的子节点title值
System.out.println("title:"+ title);
Iterator iters = recordEle.elementIterator("script"); // 获取子节点head下的子节点script
// 遍历Header节点下的Response节点while (iters.hasNext()) {
Element itemEle = (Element) iters.next();
String username = itemEle.elementTextTrim("username"); // 拿到head下的子节点script下的字节点username的值
String password = itemEle.elementTextTrim("password");
System.out.println("username:"+ username);
System.out.println("password:"+ password);
Iterator iterss = rootElt.elementIterator("body"); ///获取根节点下的子节点body
// 遍历body节点while (iterss.hasNext()) {
Element recordEless = (Element) iterss.next();
String result = recordEless.elementTextTrim("result"); // 拿到body节点下的子节点result值
System.out.println("result:"+ result);
Iterator itersElIterator = recordEless.elementIterator("form"); // 获取子节点body下的子节点form
// 遍历Header节点下的Response节点while (itersElIterator.hasNext()) {
Element itemEle = (Element) itersElIterator.next();
String banlce = itemEle.elementTextTrim("banlce"); // 拿到body下的子节点form下的字节点banlce的值
String subID = itemEle.elementTextTrim("subID");
System.out.println("banlce:"+ banlce);
System.out.println("subID:"+ subID);
} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
publicstatic Map readStringXmlOut(String xml) {
Map map =new HashMap();
Document doc =null;
doc = DocumentHelper.parseText(xml); // 将字符串转为XML
Element rootElt = doc.getRootElement(); // 获取根节点
System.out.println("根节点:"+ rootElt.getName()); // 拿到根节点的名称
Iterator iter = rootElt.elementIterator("head"); // 获取根节点下的子节点head
// 遍历head节点while (iter.hasNext()) {
Element recordEle = (Element) iter.next();
String title = recordEle.elementTextTrim("title"); // 拿到head节点下的子节点title值
System.out.println("title:"+ title);
map.put("title", title);
Iterator iters = recordEle.elementIterator("script"); // 获取子节点head下的子节点script
// 遍历Header节点下的Response节点while (iters.hasNext()) {
Element itemEle = (Element) iters.next();
String username = itemEle.elementTextTrim("username"); // 拿到head下的子节点script下的字节点username的值
String password = itemEle.elementTextTrim("password");
System.out.println("username:"+ username);
System.out.println("password:"+ password);
map.put("username", username);
map.put("password", password);
Iterator iterss = rootElt.elementIterator("body"); ///获取根节点下的子节点body
// 遍历body节点while (iterss.hasNext()) {
Element recordEless = (Element) iterss.next();
String result = recordEless.elementTextTrim("result"); // 拿到body节点下的子节点result值
System.out.println("result:"+ result);
Iterator itersElIterator = recordEless.elementIterator("form"); // 获取子节点body下的子节点form
// 遍历Header节点下的Response节点while (itersElIterator.hasNext()) {
Element itemEle = (Element) itersElIterator.next();
String banlce = itemEle.elementTextTrim("banlce"); // 拿到body下的子节点form下的字节点banlce的值
String subID = itemEle.elementTextTrim("subID");
System.out.println("banlce:"+ banlce);
System.out.println("subID:"+ subID);
map.put("result", result);
map.put("banlce", banlce);
map.put("subID", subID);
} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
publicstaticvoid main(String[] args) {
// 下面是需要解析的xml字符串例子
String xmlString ="&html&"+"&head&"+"&title&dom4j解析一个例子&/title&"
+"&script&"+"&username&yangrong&/username&"
+"&password&123456&/password&"+"&/script&"+"&/head&"
+"&body&"+"&result&0&/result&"+"&form&"
+"&banlce&1000&/banlce&"+"&subID&16&/subID&"
+"&/form&"+"&/body&"+"&/html&";
Map map = readStringXmlOut(xmlString);
Iterator iters = map.keySet().iterator();
while (iters.hasNext()) {
String key = iters.next().toString(); // 拿到键
String val = map.get(key).toString(); // 拿到值
System.out.println(key +"="+ val);
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 dom4j生成xml字符串 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信