데이터 변환 문제로 어려움을 겪고 있으며 도움과 조언에 진심으로 감사드립니다.조건부 XML to XML 변환
상당히 큰 xml 파일을 다른 xml 형식으로 변환하고 싶습니다. 제 동료들은 XSLT를 사용하면 문제가 해결되지만, 언뜻보기에는 XSLT가 필요한 조건부 서식을 수행 할 수 없다는 사실을 알게되었습니다. 내 XML에서 볼 수 있듯이 시작 및 종료 태그에 설명 된 지정된 시간 간격에서 여러 timeseries 포인트를 파생해야합니다.
그런 질문에 대한 나의 질문은 무엇입니까? XSLT를 사용하거나 다른 기술을 사용하면 쉽게 해결할 수 있습니까? 아니면 사용자 정의 코드 작성이 가장 잘 처리됩니까?
답장을 기다리십시오.
감사합니다.
XML을 변환 할 수 있습니다 :
<starttime>
<datetime>201605130500</datetime>
<qualifier>163</Qualifier>
</starttime>
<endtime>
<datetime>201605150500</datetime>
<qualifier>164</Qualifier>
</endtime>
<seriesPeriod>
<quantityDetails>
<quantity>8.0</quantity>
<qualifier>135</qualifier>
</quantityDetails>
<datetimeDetails>
<datetime>201605130500201605130600</datetime> <!-- This is a period to from 05:00 to 06:00 (from-to YYYYMMDDHHH-YYYYMMDDHHH) -->
<qualifier>324</qualifier>
</datetimeDetails>
</seriesPeriod>
<seriesPeriod>
<quantityDetails>
<quantity>-11</quantity>
<qualifier>135</qualifier>
</quantityDetails>
<datetimeDetails>
<dateTime>201605130600201605130700</dateTime>
<qualifier>324</qualifier>
</datetimeDetails>
</seriesPeriod>
<!-- Continues with a total of 48 similar "seriesPeriod", one point for each hour in the timeinterval derived from starttime and endtime -->
예상 결과 변환 후 :
<timeseries>
<timeinterval>
<start>2016-05-13T05:00Z</start>
<end>2016-05-15T05:00Z</end>
</timeinterval>
<point>
<position>1</position>
<quantity>8</quantity>
</point>
<point>
<position>2</position>
<quantity>-11</quantity>
</point>
<!-- Continues with a total of 48 similar "points", one point for each hour in the timeinterval -->
</timeseries>
여기서는 XSLT가 좋은 도구 일 수 있지만 필요한 변환의 논리를 설명해야합니다. 특히 'quantity'값은 예상 결과에서 비롯된 것입니다. 감사합니다. –
로직에 대한 설명과 함께보다 포괄적 인 (잘 구성된!) 예제가 유용 할 것입니다. 또한 XSLT 2.0을 사용할 수 있는지 나타냅니다. –
첫 번째 점에서 "4"의 양과 두 번째 점에서 "-11"의 양을 계산하는 방법을 명확히하십시오. –