xslt를 처음 사용하고 며칠 이후로 다른 옵션을 시도하고 있습니다.xslt를 사용하여 2 개의 연속 요소를 1로 병합하십시오.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<MAIN>
<ProcessResponse>
<ORDERNO>workorder123</ORDERNO>
<NAME>BD-OC 102</NAME>
<FID>124</FID>
<FNO>57</FNO>
<AID>126</AID>
<BID>125</BID>
</ProcessResponse>
<ProcessResponse>
<ORDERNO>workorder123</ORDERNO>
<NAME>BD-OC 102</NAME>
<FID>125</FID>
<FNO>58</FNO>
<AID>127</AID>
<BID>128</BID>
</ProcessResponse>
<ProcessResponse>
<ORDERNO>workorder124</ORDERNO>
<NAME>BD-OC 102</NAME>
<FID>130</FID>
<FNO>59</FNO>
<AID>132</AID>
<BID>131</BID>
</ProcessResponse>
<ProcessResponse>
<ORDERNO>workorder124</ORDERNO>
<NAME>BD-OC 102</NAME>
<FID>132</FID>
<FNO>60</FNO>
<AID>133</AID>
<BID>134</BID>
</ProcessResponse>
</MAIN>
그리고 내가 기대하고있는 출력 기본적으로 같은 (이다 가지 (더 때문에 XSLT에 대한 지식의 나의 부족의) 아래 시나리오 붙어 아이디어에서
입력 XML은 같은이 있습니까 2 개의 연속되는 모든 요소를 1로 병합하여 공통적이지 않은 부분을 병합 시키길 원합니다.) 절차 적 언어에서는 간단해야하지만 xslt에서 재귀 적으로 시도했지만 원하는 결과를 얻지 못했습니다. 변환 후
출력 :
<Response>
<Process>
<ORDERNO>workorder123</ORDERNO>
<NAME>BD-OC 102</NAME>
<F1>
<FID>124</FID>
<FNO>57</FNO>
<AID>126</AID>
<BID>125</BID>
</F1>
<F2>
<FID>125</FID>
<FNO>58</FNO>
<AID>127</AID>
<BID>128</BID>
</F2>
</Process>
<Process>
<ORDERNO>workorder124</ORDERNO>
<NAME>BD-OC 102</NAME>
<F1>
<FID>130</FID>
<FNO>59</FNO>
<AID>132</AID>
<BID>131</BID>
</F1>
<F2>
<FID>132</FID>
<FNO>60</FNO>
<AID>133</AID>
<BID>134</BID>
</F2>
</Process>
</Response>
참고 : 실제 파일이 훨씬 더 복잡 이보다 있지만 기본적인 개념은 동일하고, 하나의 (공통 부품)에 각 2 개 연속적인 블록을 병합.
도움/방향/포인터 감사합니다.
어떤 xslt 버전? 병합의 규칙은 무엇입니까? ORDERNO가 동일하기 때문에 실제로 연속적입니까? –
xslt 버전 1.0 규칙은 다음과 같습니다. 연속되는 요소 (2 개만)는 동일한 순서 번호를 갖습니다. (비록 내가 orderno를 기반으로하고 있다고 생각하는 것이 더 일반적 일 것이다) 그러나 그것이 내가 바라는 것 이상일 것이다. (더 나쁜 것은 아니다). – user1933888