使用Java解析XML文件

时间:2013-04-16 10:44:58

标签: java xml-parsing

我需要解析Java中的XML文件,并根据条件检查一些支持。我尝试使用DOM。

  <Config>
      <Configuration>
        <Descriptor>
          <e id="0">
            <family>Rest</family>
            <supportedList>
              <_length>5</_length>
              <_type>TypeX[]</_type>
              <e id="0">value-1</e>
              <e id="1">value-2</e>
              <e id="2">value-3</e>
              <e id="3">value-4</e>
              <e id="4">value-5</e>
            </supportedList>
          </e>
          <e id="1">
            <family>Rest1</family>
            <supportedList>
              <_length>5</_length>
              <_type>TypeX[]</_type>
              <e id="0">value1-1</e>
              <e id="1">value1-2</e>
              <e id="2">value1-3</e>
              <e id="3">value1-4</e>
              <e id="4">value1-5</e>
            </supportedList>
          </e>
          </Descriptor>
      </Configuration>
    </Config>

在上面的XML文件中,我需要经过“e”块然后遍历Descriptor块,然后搜索Family - Rest1,然后遍历supportedList。检查supportedList是否包含用户提供的值(如果存在),然后返回true。

我尝试使用DOM解析器,但我无法正确解析文件。我正在处理的实际XML文件是20K行并且数据太多。任何简单的解决方案。

1 个答案:

答案 0 :(得分:0)

    XPathFactory factory = XPathFactory.newInstance();
    XPath xpath = factory.newXPath();
    xPathExpression = xpath.compile("//family[text()='Rest1']/e");

    NodeList list = (NodeList) xPathExpression
        .evaluate(xml, XPathConstants.NODESET);

在XPath语法中,只需搜索“XPath备忘单”即可。