日期:2014-05-20  浏览次数:20804 次

求一个思路 用JAVA分析XML格式的网站日志
有一个网站 网络日志已经生成 是XML格式的 大概格式如下 

<session id="100" user_agent="系统信息 浏览器信息等">
  <request timestamp="2012-6-20 08:01:34" type="item">
  <url>XXXXXXXX.html</url>
  </request>
  </session>

会记录每个用户的访问信息 比如系统 浏览器。。等
然后是 访问此URL的时间
具体URL  

这个网络日志里面会有很多类似这样的信息 并且其中访问时间和访问URL可以为多个
大致要做成 运行程序后 访问这个XML日志文件 
然后统计出一共多少用户 在每个页面停留时间 每个用户平均访问了几个URL之类

因为从来没有做过这种特地来求逸个思路 非常感谢 或者给我相关文献什么都可以 !谢谢

------解决方案--------------------
你只要会解析xml文件就行了,其它就是统计的问题了

给你一个解析xml文件最简单的例子
Java code

import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;

public class DomTest
{
    public static void main(String[] args) throws Exception
    {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();        
        Document document = builder.parse(new File("test.xml"));    //分析xml文件
        Element root = document.getDocumentElement();        //得到根元素
        System.out.println(root.getTagName());            //打印根元素标签名
        NodeList nodeList = root.getChildNodes();        //得到根元素的子元素
        for (int i = 0; i < nodeList.getLength(); i++)    
        {
            Node node = nodeList.item(i);
            if (node instanceof Element)        //判断子元素是否是Element对象
            {
                Element element = (Element) node;    //转化为Element对象
                System.out.println(element.getTagName() + " " + element.getAttribute("id") + " " + element.getAttribute("user_agent"));    //打印属性
                //下面是分析二级子元素,和上面基本相同
                NodeList nodeList2 = node.getChildNodes();
                for (int j = 0; j < nodeList2.getLength(); j++)
                {
                    Node node2 = nodeList2.item(j);
                    if (node2 instanceof Element)
                    {
                        Element element2 = (Element) node2;
                        System.out.println(element2.getTagName() + " " + element2.getAttribute("timestamp") + " " + element2.getAttribute("type"));
                    }
                }
            }
        }
    }
}

------解决方案--------------------
用dom4j解析即可,网上有很多例子,LZ搜dom4j解析xml文件,能搜到好多。
比如:http://wenku.baidu.com/view/4dd4ee3067ec102de2bd898b.html
dom4j也有官方的文档与例子。http://www.dom4j.org/