1

将源 XML 文档转换为目标 XML 文档的直接方法是什么?源和目标之间只有很小的区别:具体来说,我想删除UnitIDRecord每个-Node 中的第一个UnitIDGroup-Node。

  • 这个任务 DOM 或 SAX 的合适模型是什么?
  • 哪个 XML 库最适合这个问题(它保证源和目标仅在删除的节点中有所不同,没有丢失的命名空间、属性、编码......)?
  • 我读到了XSLT,这可能是一个选择吗?

XML 文档如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<ExPostInformationRealGeneration xmlns="http://schemas.seven2one.de/EEX/TransparencyPlatform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.seven2one.de/EEX/TransparencyPlatform EEXTransparencyPlatform.xsd">
    <DispatcherID>XYZ</DispatcherID>
    <CreationDateTime>2012-05-22T13:57:00Z</CreationDateTime>
    <MessageText>1 - Positiv - Meldung mit Quality-Tag - L000</MessageText>
    <UnitIDGroup>
        <UnitID>E110200-001</UnitID>
        <UnitIDRecord><Quantity>16.9</Quantity><Starttime>2008-04-30T22:00:00Z</Starttime><Period>PT1H</Period><MessageText></MessageText></UnitIDRecord>
        <UnitIDRecord><Quantity>16.6</Quantity><Starttime>2008-04-30T23:00:00Z</Starttime><Period>PT1H</Period><MessageText></MessageText></UnitIDRecord>
        <UnitIDRecord><Quantity>16.4</Quantity><Starttime>2008-05-01T00:00:00Z</Starttime><Period>PT1H</Period><MessageText></MessageText></UnitIDRecord>
    </UnitIDGroup>
    <UnitIDGroup>
        <UnitID>E110200-002</UnitID>
        <UnitIDRecord><Quantity>16.9</Quantity><Starttime>2008-04-30T22:00:00Z</Starttime><Period>PT1H</Period><MessageText></MessageText></UnitIDRecord>
        <UnitIDRecord><Quantity>16.6</Quantity><Starttime>2008-04-30T23:00:00Z</Starttime><Period>PT1H</Period><MessageText></MessageText></UnitIDRecord>
        <UnitIDRecord><Quantity>16.4</Quantity><Starttime>2008-05-01T00:00:00Z</Starttime><Period>PT1H</Period><MessageText></MessageText></UnitIDRecord>
    </UnitIDGroup>
    <UnitIDGroup>
        <UnitID>E110201-001</UnitID>
        <UnitIDRecord><Quantity>7.0</Quantity><Starttime>2008-04-30T22:00:00Z</Starttime><Period>PT1H</Period><MessageText></MessageText></UnitIDRecord>
        <UnitIDRecord><Quantity>7.1</Quantity><Starttime>2008-04-30T23:00:00Z</Starttime><Period>PT1H</Period><MessageText></MessageText></UnitIDRecord>
        <UnitIDRecord><Quantity>7.1</Quantity><Starttime>2008-05-01T00:00:00Z</Starttime><Period>PT1H</Period><MessageText></MessageText></UnitIDRecord>
    </UnitIDGroup>
    <!-- other UnitIDGroup elements -->
</ExPostInformationRealGeneration>
4

1 回答 1

0

如果它符合您的条件,我会考虑将文件作为字符串读取并将字符串写入另一个文件的可能性。这是一个 5 行的程序,避免了任何解析等。它将运行快速且简单。但是,它是针对这个问题的,不能重用。因此,我将此作为建议而不是正确的解决方案!

于 2012-09-11T08:08:16.427 回答