Java 在代码中删除XML文件中的内容
我正在开发一个android应用程序,我想在我的应用程序代码中删除XML文件中的一小部分内容。 我想删除以下内容:Java 在代码中删除XML文件中的内容,java,android,xml,Java,Android,Xml,我正在开发一个android应用程序,我想在我的应用程序代码中删除XML文件中的一小部分内容。 我想删除以下内容: <pma:structure_schemas> <pma:database name="test" collation="latin1_swedish_ci" charset="latin1"> <pma:table name="agenda"> CREATE TABLE `agenda` (
<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>
创建“议程”表(
`id`int(2)非空自动增量,
`标题'varchar(60)不为空,
`description`varchar(1000)不为空,
`town`varchar(30)不为空,
主键(`id`)
)ENGINE=InnoDB AUTO_INCREMENT=4默认字符集=1;
你知道怎么做吗 看一看。这是一个非常受欢迎的问题,下次谷歌在这里提问之前会遇到问题 您可以使用以下代码:
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.
}
}
您需要在此处传递要删除的节点的表达式字符串。以下是删除元素的代码。请注意,它比DOM更简洁、更有效
import com.ximpleware.*;
import java.io.*;
public class removeElement {
public static void main(String s[]) throws VTDException,IOException{
VTDGen vg = new VTDGen();
if (!vg.parseFile("input.xml", false))
return;
VTDNav vn = vg.getNav();
XMLModifier xm = new XMLModifier(vn);
AutoPilot ap = new AutoPilot(vn);
ap.selectXPath("/ClOrdIDS/ClOrdID[@id='3']");
int i=0;
while((i=ap.evalXPath())!=-1){
xm.remove();
}
xm.output("output.xml");
}
}
我已经在使用sax解析器来完成这项工作。问题是某些标签阻碍了feed的使用。我是android编程的新手。我会试着对你发布的内容做一些研究。好的。如果有任何问题,请告诉我。好的。在我的Sax程序中,为了获取xml文件,我使用以下行:url=newURL(“internetaddress/xml.xml”);然后,我想直接对我在帖子中向您展示的XML内容进行解释。我正试图理解你发送的内容,但我真的不知道如何有效地使用它。你有对我更容易的吗?非常感谢你的回答,我想是的,但我希望这对我来说不会太复杂。