0

我有一个 300 KB 的 xml 文件,其中包含 70 个元素。我需要在删除根元素之一时保持高效。最好的方法是什么?

  • 我应该分离内存中的元素,保存它并通过移动它来覆盖它吗?
  • 有更好的选择吗?

我喜欢 org.jdom,但欢迎任何改进

4

2 回答 2

1

除了您不想要的特定元素之外,一个简单的 XSLT 会如何向前复制所有 XML?

您可以使用修改后的身份转换,只需为要抑制的元素添加空模板。

例如:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:template match="/">
        <xsl:apply-templates/>
    </xsl:template>

    <!--Identity transform copies all nodes and attributes by default -->
    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates />
        </xsl:copy>
    </xsl:template>

    <!--Create an empty template for the elements that you want to suppress-->
    <xsl:template match="ElementToRemove" />

</xsl:stylesheet>
于 2010-04-17T19:58:18.237 回答
1

由于没有加载和解析XML文件就无法使用它,因此您的第一种方法可以工作..此外,您不能简单地从文件中删除一个片段而不重写它而没有涉及的片段。

如果您要排除的内容非常简单且易于搜索,您还可以处理文件并在阅读时将其写出,而无需重写您要排除的内容。这可能比解析它要简单得多。

于 2010-04-17T19:00:42.143 回答