xml通过计数not属性删除元素

xml通过计数not属性删除元素,xml,Xml,嗨,我有一个超大的xml文件40+GB。简化的结构是 <xml> <element>111</element> <element>222</element> <element>333</element> <element>444</element> <element>555</element> <element&

嗨,我有一个超大的xml文件40+GB。简化的结构是

<xml>
    <element>111</element>
    <element>222</element>
    <element>333</element>
    <element>444</element>
    <element>555</element>
    <element>666</element>
    ...
</xml>

我试图删除2000000个元素,但我不知道元素的内容。我有办法这样做吗?已经搜索了几个小时,但只找到了基于属性的xml查询。谢谢

如果您使用的是UNIX,并且已知文件总是采用这种格式,那么使用sed可能是最简单的


如果需要解析实际的XML结构,可以考虑XML SED.< /P> < P>假设您想删除前五个元素。首先,得到第一个开口的线

输出:

<xml>
    <element>666</element>
</xml>

你想用什么语言删除这个节点?事实上,任何语言或工具都会很受欢迎,只要它能达到目的。谢谢。这确实删除了标签上的内容,但存在一个问题。里面还有属性,你的建议只计算标签,而不区分不同的层。因此,实际上它将删除2000000标签,而不是2000000标签。我应该怎么做才能得到2000000元素?您有或可以安装xml sed吗?
$ opening=$(grep -n '<element>' < x.xml | head -1 | cut -d: -f1)
$ closing=$(grep -n '</element>' < x.xml | head -n5 | tail -1 | cut -d: -f1)
$ sed "${opening},${closing}d" < x.xml
<xml>
    <element>666</element>
</xml>
$ xmllint -format x.xml