我正在开发一个 android 应用程序,我想在我的应用程序代码中删除我的 XML 文件中的一小部分内容。 我想删除以下内容:
<pma:structure_schemas>
<pma:database name="test" collation="latin1_swedish_ci" charset="latin1">
<pma:table name="agenda">
CREATE TABLE `agenda` (
`id` int(2) NOT NULL AUTO_INCREMENT,
`title` varchar(60) NOT NULL,
`description` varchar(1000) NOT NULL,
`town` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
</pma:table>
</pma:database>
</pma:structure_schemas>
你知道怎么做吗?
最佳答案
您可以使用以下代码:
import java.io.File;
import javax.xml.*;
import org.w3c.dom.*;
public class DeleteXmlNode {
public static void deleteNode(String nodedetailsExpression) {//Use your expression here depending upon the node you wnt to delete
try{
XPathFactory xPathFactory = XPathFactory.newInstance();
XPath xpath = xPathFactory.newXPath();
XPathExpression expression = xpath.compile(nodedetailsExpression);
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
Document document = documentBuilderFactory.newDocumentBuilder().parse(new File("test.xml"));
Node node = (Node) expression.evaluate(document, XPathConstants.NODE);
node.getParentNode().removeChild(node);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(new DOMSource(document), new StreamResult(System.out));
}catch(Exception e){
//Do your Exception handling over here.
}
}
这里需要传入要删除节点的表达式字符串。
关于java - 在代码中删除XML文件中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15811829/