-2

我有如下所示的 XML 文件内容。

<FileIndex>
<Document SEQUENCE="0" FILENAME="A.xml"  />
<Document SEQUENCE="1" FILENAME="B.htm"  />
<Document SEQUENCE="2" FILENAME="C.htm"  />
<Document SEQUENCE="3" FILENAME="D.htm"  />

我想获取属性 FILENAME 的值,其中属性 SEQUENCE 的值等于“1”。哪种方式是首选方式?SAX、DOM、XPath?以及如何实施?

4

1 回答 1

1

这是您需要的:

  @Test
  public void test() throws Exception
  {
    String xml =
        "<FileIndex>\n" + 
        "<Document SEQUENCE=\"0\" FILENAME=\"A.xml\"  />\n" + 
        "<Document SEQUENCE=\"1\" FILENAME=\"B.htm\"  />\n" + 
        "<Document SEQUENCE=\"2\" FILENAME=\"C.htm\"  />\n" + 
        "<Document SEQUENCE=\"3\" FILENAME=\"D.htm\"  />\n" + 
        "</FileIndex>";
    XPath xp = XPathFactory.newInstance().newXPath();
    System.out.println(xp.evaluate("/FileIndex/Document[@SEQUENCE='1']/@FILENAME", new InputSource(new StringReader(xml)), XPathConstants.STRING));
  }

对于这么小的 XML,最好使用 XPath

于 2012-04-11T09:04:13.927 回答