如何解决删除xml版本控制+启动节点
|| 我需要分割一个xml文件,该文件可以工作,但是后来我发现我不需要part和。 我将其拆分为1000个文件,因此有可能更改我已经拥有的代码,或者添加新方法并在文件中放入目录,并使其删除行。 这是xml文件的快速示例。<?xml version=\"1.0\" encoding=\"UTF-8\"?><root>
<envelope>
<node>
<node>
</node>
</node>
<envelope>
<envelope>
<node>
<node>
</node>
</node>
<envelope>
</root>
这是我现在可以拆分xml的代码。
public class JavaSplit {
public static void main(String[] args) throws Exception {
String path = \"C:\\\\XMLFiles\\\\\";
String nameXML = \"CSV_SAMPLE_DATA.xml\";
String file1 = path + nameXML;
String rootName = \"root\";
String childName = \"envelope\";
String attribute = \"fileID\";
JavaSplit.splitXMLFile(file1,path,rootName,childName,attribute);
}
public static void splitXMLFile (String file,String path,String rootName,String childName,String attribute) throws Exception {
String[] temp;
String[] temp2;
String[] temp3;
String[] temp4;
String[] temp5;
String[] temp6;
File input = new File(file);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Document doc = dbf.newDocumentBuilder().parse(input);
XPath xpath = XPathFactory.newInstance().newXPath();
NodeList nodes = (NodeList) xpath.evaluate(\"//\"+rootName+\"/\"+childName,doc,XPathConstants.NODESET);
Node staff = doc.getElementsByTagName(childName).item(0);
NamedNodeMap attr = staff.getAttributes();
Node nodeAttr = attr.getNamedItem(attribute);
String node = nodeAttr.toString();
temp = node.split(\"=\");
temp2 = temp[1].split(\"^\\\"\");
temp3 = temp2[1].split(\"\\\\.\");
Document currentDoc = dbf.newDocumentBuilder().newDocument();
Node rootNode = currentDoc.createElement(rootName);
File currentFile = new File(path + temp3[0]+ \".xml\");
for (int i=1; i <= nodes.getLength(); i++) {
Node imported = currentDoc.importNode(nodes.item(i-1),true);
rootNode.appendChild(imported);
Node staff2 = doc.getElementsByTagName(childName).item(i);
if (staff2 == null){
}
else{
NamedNodeMap attr2 = staff2.getAttributes();
Node nodeAttr2 = attr2.getNamedItem(attribute);
String node2 = nodeAttr2.toString();
temp4 = node2.split(\"=\");
temp5 = temp4[1].split(\"^\\\"\");
temp6 = temp5[1].split(\"\\\\.\");
writeToFile(rootNode,currentFile);
rootNode = currentDoc.createElement(rootName);
currentFile = new File(path + temp6[0]+\".xml\");
}
}
writeToFile(rootNode,currentFile);
}
private static void writeToFile(Node node,File file) throws Exception {
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.transform(new DOMSource(node),new StreamResult(new FileWriter(file)));
}
}
解决方法
您是否只是想从所有文件中删除?对于这样的一次性编辑,您可以使用诸如Notepad ++之类的程序来检查目录中的所有文件,并查找/替换该行。只需确保对文件进行备份,因为我不建议删除该行,因为xml解析器应使用该信息,而不应将其解析为数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。