Как конвертировать XML из одного формата в другой, а затем, наконец, конвертировать в JSON - PullRequest
0 голосов
/ 21 ноября 2019

XML у меня есть,

<?xml version="1.0" encoding="UTF-8"?>
<SimpleDataBundle Version="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.t.com/tvi/v2010/sdb" xsi:schemaLocation="http://schemas.t.com/tvi/v2010/sdb sdb.xsd">
  <SimpleAlertReport Version="1" StartTime="2019-09-16T18:33:24Z" SiteID="ANTHEM35" Type="PSRAlertBundle" SourceReportingAlias="CMIC.1.1.1.63" SMID="1289f060-322b-48ea-b825-b14d1149896f">
    <AlertGroup Version="1">
      <AlertGroupElement>
        <PSRSummary Type="RootCause" DetectedTimestamp="2019-09-16T18:33:24Z" Sequence="149" ID="ed52b001-1e82-455a-9301-1d2cdba62e87" Ignore="None" ReportingAlias="SYS.1" Domain="PSR" MessageID="T_SNAPSHOT8" Severity="Degraded" Maintenance="Off" Notify="On" Mode="Normal" CustomerViewable="true" HasAnySupportBundles="false" Version="6">
          <Impact>Internal error has occurred.</Impact>
 <Synopsis>T Snapshot AMP Error</Synopsis>
          <ImpactedSystems>
            <SystemName>ANTHEM35</SystemName>
          </ImpactedSystems>
        </PSRSummary>
      </AlertGroupElement>
      <AlertGroupElement>
        <MPPAlert>
          <ID>e2ee9eba-216a-467b-a828-a8430c15e612</ID>
          <SystemName>ANTHEM35</SystemName>
        </MPPAlert>
      </AlertGroupElement>
      <AlertGroupElement>
        <MPPAlert>
          <ID>e45b1536-f377-4c5d-8f4d-a5177e941cb4</ID>
          <SystemName>ANTHEM35</SystemName>
        </MPPAlert>
      </AlertGroupElement>
     </AlertGroup>
  </SimpleAlertReport>
</SimpleDataBundle>

Нужный вывод должен выглядеть так, что весь XML должен попасть в поле как значение поля

<?xml version="1.0" encoding="UTF-8"?>
<root>
<ID>ed52b001-1e82-455a-9301-1d2cdba62e87</ID>
<Description>"<PSRSummary Type="RootCause" DetectedTimestamp="2019-09-16T18:33:24Z" Sequence="149" ID="ed52b001-1e82-455a-9301-1d2cdba62e87" Ignore="None" ReportingAlias="SYS.1" Domain="PSR" MessageID="T_SNAPSHOT8" Severity="Degraded" Maintenance="Off" Notify="On" Mode="Normal" CustomerViewable="true" HasAnySupportBundles="false" Version="6">
          <Impact>Internal error has occurred.</Impact>
 <Synopsis>T Snapshot AMP Error</Synopsis>
          <ImpactedSystems>
            <SystemName>ANTHEM35</SystemName>
          </ImpactedSystems>
        </PSRSummary>"
</Description>
<ID>e45b1536-f377-4c5d-8f4d-a5177e941cb4</ID>
<Description>"<MPPAlert>
          <ID>e2ee9eba-216a-467b-a828-a8430c15e612</ID>
          <SystemName>ANTHEM35</SystemName>
        </MPPAlert>"
</Description>
</root>

Наконец, я хочупреобразуйте это в формат JSON, а затем описание JSON должно быть сопоставлено с полем String в целевой системе для этого соответствующего идентификатора. Пример вывода JSON Я ожидаю

{"PSRSummary": {"@Type": "RootCause", "@DetectedTimestamp": "2019-11-05T00:55:49Z", "@Sequence": "0", "@ID": "ed52b001-1e82-455a-9301-1d2cdba62e87".
.
.
.
.
.
."ImpactedSystems": {"SystemName": "XLCOMEDW3"}}}

, пожалуйста, предложите что-нибудь:)

...