- <deviceparameters>
- <parameter componenttype="Table">
<name>TPCSEC</name>
<oid>342234</oid>
<writable>true</writable>
<description>Tata Power SED</description>
- <columns>
<colname access="ReadOnly" type="Integer">col1</colname>
<colname access="ReadOnly" type="Integer">col2</colname>
</columns>
- <rows>
<value>123</value>
<value>231</value>
</rows>
</parameter>
- <parameter componenttype="ListBox">
<name>Enum</name>
<oid>7892</oid>
<writable>true</writable>
<description>This is Enumeration</description>
- <paramvalues type="String">
<value default="Yes">1231</value>
<value default="No">3423</value>
<value default="Yes">231</value>
</paramvalues>
</parameter>
</deviceparameters>
这是我的 XML 文件。现在我想删除名为 TPCSEC
的节点“parameter
”。
对于此删除,我使用以下代码。
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
doc = dBuilder.parse(selectedFile);
doc.getDocumentElement().normalize();
rootElement = doc.getDocumentElement();
NodeList nList = doc.getElementsByTagName("parameter");
System.out.println(""+nList.getLength());
for (int temp = 0; temp < nList.getLength(); temp++)
{
Node nNode = nList.item(temp);
Element eElement = (Element) nNode;
String upname1 = getTagValue("name", eElement);
if(upname1.equals(nodeName))
{
System.out.println("Parent: "+nNode.getParentNode().getNodeName());
System.out.println("nodename: "+nNode.getNodeName());
System.out.println("rmoving ....");
rootElement.removeChild(eElement);
System.out.println("removed...");
}
}
我的代码是否正确?执行时,它不会显示任何错误或警告。但它不会删除所请求的节点。 谢谢..
最佳答案
你把它写到原来的xml文件了吗?我的意思是
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(selectedFile);
transformer.transform(source, result);
关于java - 无法删除 xml 文件的节点 'parameter',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9822481/