我对 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; }
添加回答
举报
0/150
提交
取消