Вы можете использовать XSLT
скрипт:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="book[@id='1']"/>
</xsl:stylesheet>
В основном то, что один делает копирует весь файл без объектов, которые соответствуют шаблону "book[@id='1']"
XSLT, конечно, ввести некоторые накладные расходы, но преимущества:
- Вы можете легко изменить преобразование, когда запрос становится более сложным
- Механизм исполнения больше ошибок, чем код, который вы напишете сами (без обид, но XSLT-программы используются тысячами людей и, таким образом, легко отлаживаются ошибки)
- Вы можете протестировать преобразования с помощью многочисленных программ с помощью жесткого кодирования трансформация вам придется написать testbench самостоятельно.
- В некоторых случаях XSLT будет работать даже быстрее, потому что программисты пытаются оптимизировать выполнение.
Использование DOM-парсер (без указания весь файл, я надеюсь, что вы знакомы с DOM):
NodeList nList = doc.getElementsByTagName("book");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
if(eElement.getAttribute("id").equals("1")) {
doc.removeChild(eElement);
}
}
}
Как интегрировать его с Android? –
Поскольку копирование вводит избыточность, я укажу на этот вопрос: http://stackoverflow.com/questions/6215001/convert-xml-file-using-xslt-in-android –
купите его, спасибо +1 –