从 XMLnode 读取值

我对 XML 解析很陌生。我正在尝试从计算机上的共享驱动器读取 XML 文件并将它们移动到另一个共享驱动器。我有以下 XML 文件。我正在尝试从此 XML 文档中读取 Test.pdf 值


<?xml version="1.0" encoding="utf-8" ?> 

 <xml>

 <IndexData FileName="Test.pdf">

  <AttachmentID>3221929</AttachmentID> 

  <URI>test234555..pdf</URI> 

  <postmarkDate>2018-07-02T12:52:00.9</postmarkDate> 

  <pin>305270036</pin> 

  <scanDate>2018-07-02T12:52:00.9</scanDate> 

  <UserLogin>admin</UserLogin> 

  </IndexData>

 <IndexData FileName="Test2.pdf">

  <AttachmentID>3221931</AttachmentID> 

  <URI>Appp2.pdf</URI> 

  <postmarkDate>2018-07-02T14:19:22.5</postmarkDate> 

  <pin>305270036</pin> 

  <scanDate>2018-07-02T14:19:22.5</scanDate> 

  <UserLogin>admin</UserLogin> 

  </IndexData>

</xml>

我尝试导入 import org.w3c.dom.Node; 为了这。下面是我的代码:


String processXml(Node doc) {


    String fileName = null;

    try {

      DfLogger.debug(this, "Loading: " + doc.getNodeName(), null, null);


      Map<String, String> indexData = getXmlData(doc);

      fileName = indexData.get("IndexData FileName");

      if (new File(fileName).exists()) {

        import(fileName, indexData);

      }

    } catch (Exception ex) {

      DfLogger.error(this, "Error processing document.", null, ex);

      return null;

    }


    return fileName;

  }

当我尝试通过执行以下操作读取值时,我的 FileName 值始终为 NULL:


 fileName = indexData.get("IndexData FileName");

下面是我的 getXmlData 方法。


  protected Map<String, String> getXmlData(Node xmlDataNode) {


        Map<String, String> xmlData = new HashMap<>();


        NodeList nodeList = xmlDataNode.getChildNodes();


        for (int i = 0; i < nodeList.getLength(); i++) {

          Node node = nodeList.item(i);

          if (node.getNodeType() == Node.ELEMENT_NODE) {

            xmlData.put(node.getNodeName(), node.getTextContent().trim());

          }

        }


        return xmlData;

      }


MYYA
浏览 248回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java