下面是我要解析的一个XML文件,我只是贴了部分,基中measValue ,measResults 这两部分的数据(我这里用xxxx代替)是我需要解析的内容。我想通过选择结点来解析XML文件的,估计结点的路径写的有问题,请高手们分析一下。Element measValue =(Element)doc.selectNodes("//measCollecFile/measData/measInfo/measValue");
Element measResults =(Element)doc.selectNodes("//measCollecFile/measData/measInfo/measValue/measResults");<?xml version="1.0" encoding="GB2312"?>
<measCollecFile xmlns="http://latest/nmc-omc/cmNrm.doc#measCollec" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://latest/nmc-omc/cmNrm.doc#measCollec schema\pmResultSchedule.xsd">
    <fileHeader fileFormatVersion="32.435 V7.2" vendorName="Huawei">
        <fileSender elementType="CBSC"/>
        <measCollec beginTime="2010-02-24T01:00:00+08:00"/>
    </fileHeader>
    <measData>
        <managedElement userLabel="ABC"/>
        <measInfo measInfoId="1157627923">
            <granPeriod duration="PT1800S" endTime="2010-02-24T01:30:00+08:00"/>
            <repPeriod duration="PT1800S"/>
            <measTypes>1157629099 1157629100 1157629101 1157629102 1157629103 1157629104 1157629105 1157629348 1157632412 1157632413 1157632414 1157632415 1157632416 1157632418 1157632428 1157632486 1157632552 1157632554 1157632556 1157632558 1157632560 1157632562 1157632564 1157632566 1157632568 </measTypes>
            <measValue measObjLdn="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx">
                <measResults>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</measResults>
            </measValue>
            <measValue measObjLdn="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx">
                <measResults>0 0 0 0 0 0 0 NIL 0 0 0 0 0 0 NIL 0 0 0 0 0 0 0 0 0 NIL </measResults>
            </measValue>

解决方案 »

  1.   

    ocument doc = new SAXReader().read(TestWeb.class
    .getResourceAsStream("abc.xml"));
    Map map = new HashMap();
    map.put("namespace", "http://latest/nmc-omc/cmNrm.doc#measCollec");
    XPath path = doc
    .createXPath("//namespace:measData/namespace:measInfo/namespace:measValue/namespace:measResults");
    path.setNamespaceURIs(map);
    System.out.println(((Node)path.selectNodes(doc).get(0)).getText()); } catch (DocumentException e)
    {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }