如何仅对XML文件的一部分进行linarize?

时间:2018-04-13 08:13:51

标签: xml editing

我正在努力处理一个巨大的XML文件(大小超过400M),我只需要对它的部分内容进行处理。我尝试使用Notepad ++和XML Tools插件进行编辑,但它会使所有内容变得模糊。由于英语不是我的母语,也许一个例子可以使事情更清楚。

我想要这个:

<Example>
    <Data>
        <First>abcd</First>
        <Second>efgh</Second>
        <Third>ijkl</Third>
    </Data>
    <Data>
        <Fourth>mnop</Fourth>
        <Fifth>qrst</Fifth>
        <Sixth>uvwx</Sixth>
    </Data>
    <Data>
        <Seventh>1234</Seventh>
        <Eigth>5678</Eigth>
        <Ninth>90ab</Ninth>
    </Data>
</Example>

要像这样打印出来:

<Example>
    <Data><First>abcd</First><Second>efgh</Second><Third>ijkl</Third></Data>
    <Data><Fourth>mnop</Fourth><Fifth>qrst</Fifth><Sixth>uvwx</Sixth></Data>
    <Data><Seventh>1234</Seventh><Eigth>5678</Eigth><Ninth>90ab</Ninth></Data>
</Example>

有什么想法吗?欢迎提出所有建议。

1 个答案:

答案 0 :(得分:1)

你的例子只是删除了一些空白:这就是你需要做的所有事情吗?

使用流式XSLT 3.0转换器,您可以使用以下方法实现示例转换:

<xsl:transform version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:strip-space elements="Data"/>
  <xsl:mode on-no-match="deep-copy"/>
</xsl:transform>