C++中使用XRESE库删除XML中的特定元素 我的问题是,我想用SAXX和C++中的XeRCE API来删除LASTFILE和它的子元素?? <?xml version="1.0" encoding="ISO-8859-1"?> <!D
C++中使用XRESE库删除XML中的特定元素 我的问题是,我想用SAXX和C++中的XeRCE API来删除LASTFILE和它的子元素??C++中使用XRESE库删除XML中的特定元素 我的问题是,我想用SAXX和C++中的XeRCE API来删除LASTFILE和它的子元素?? <?xml version="1.0" encoding="ISO-8859-1"?> <!D,c++,xml,sax,xerces,C++,Xml,Sax,Xerces,C++中使用XRESE库删除XML中的特定元素 我的问题是,我想用SAXX和C++中的XeRCE API来删除LASTFILE和它的子元素?? <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE config> <config datecreated="20011210"> <user> John Smith </user> <login>jsmit
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE config>
<config datecreated="20011210">
<user>
John Smith
</user>
<login>jsmith</login>
<password>topsecret</password>
<lastfiles>
<lastfile timestamp="20011210T1002">accounts.txt</lastfile>
<lastfile timestamp="20011190T1132">/home/jsmith/docs/letter.doc</lastfile>
</lastfiles>
</config>
您最后尝试的解决方案是什么?我尝试从开始到结束元素解析文件,只跳过特定的标记,但内存效率不高,是否有任何方法可以直接删除元素并将修改后的文件存储在其他文件中,任何帮助都是值得的。与其一次解析所有内容,然后一次编写所有内容,不如在阅读时重新编写。为此,您需要使用SAX2解析器而不是DOM解析器。设置一个标志copyToOutput=true,在看到lastfiles的开始时将其设置为false,在看到结束标记时将其设置为true。当您看到其他内容时,请检查标志,然后将数据写入输出,或者根据标志的值跳过它。为什么内存效率在这里很重要?这是一个很小的数据集——这是一个玩具示例,用来表示实际使用的更大的XML吗?除非您真的需要最大的效率,否则DOM将比SAX更容易使用。