원본 XML에서 요소를 복사하고 최종 XML을 생성하고 생성하는 두 xml의 요소를 대체하는 xsl 변환이 있습니다. 그것은 작동하지만, 요소가 복사 요소 empty()보다 두 xml에 없을 때. 두 번째 xml에없는 소스에서 복사되지 않은 요소를 복사해야합니다.xsl 두 번째 xml로 소스 xml을 바꾸고 두 번째 xml에는 존재하지 않는 손대지 않은 요소로
예를 들어 : 먼저 XML은
두 번째 XML을 포함
<SHOP>
<SHOPITEM>
<CATEGORYTEXT>some ways</CATEGORYTEXT>
<PRODUKT_ID>80002158</PRODUKT_ID>
<PRODUCT>Zvedák 5t</PRODUCT>
<PRODUCTNAME>Zvedák 5t</PRODUCTNAME>
<ZBOZI_PRODUCTNO>t2</ZBOZI_PRODUCTNO>
<OZNACENO>0</OZNACENO>
</SHOPITEM>
<SHOPITEM>
<CATEGORYTEXT>VÝPRODEJ</CATEGORYTEXT>
<PRODUKT_ID>80002419</PRODUKT_ID>
<PRODUCT>3d Dochucovací sada Renga</ZPRODUCT>
<PRODUCTNAME>3d Dochucovací sada Renga</PRODUCTNAME>
<ZBOZI_PRODUCTNO>vv61</ZBOZI_PRODUCTNO>
<OZNACENO>0</OZNACENO>
</SHOPITEM>
</SHOP>
...
<dataroot>
<zbozi_FEED_DATA>
<ZBOZI_CELA_CESTA>Heureka.cz | Auto-moto | Autodíly | Ramena řízení</ZBOZI_CELA_CESTA>
<PRODUKT_ID>80002158</PRODUKT_ID>
<ZBOZI_PRODUCT>Zvedák - panenka 5t</ZBOZI_PRODUCT>
<ZBOZI_PRODUCTNAME>Zvedák - panenka 5t</ZBOZI_PRODUCTNAME>
<ZBOZI_PRODUCTNO>t2</ZBOZI_PRODUCTNO>
<OZNACENO>0</OZNACENO>
</zbozi_FEED_DATA>
</dataroot>
그리고 욕망 출력 XML을 포함 :
<SHOP>
<SHOPITEM>
<zbozi_FEED_DATA>
<CATEGORYTEXT>Heureka.cz | Auto-moto | Autodíly | Ramena řízení</CATEGORYTEXT>
<PRODUKT_ID>80002158</PRODUKT_ID>
<PRODUCT>Zvedák - panenka 5t</PRODUCT>
<PRODUCTNAME>Zvedák - panenka 5t</PRODUCTNAME>
<ZBOZI_PRODUCTNO>t2</ZBOZI_PRODUCTNO>
<OZNACENO>0</OZNACENO>
</SHOPITEM>
<SHOPITEM>
<CATEGORYTEXT>VÝPRODEJ</CATEGORYTEXT>
<PRODUKT_ID>80002419</PRODUKT_ID>
<PRODUCT>3d Dochucovací sada Renga</PRODUCT>
<PRODUCTNAME>3d Dochucovací sada Renga</PRODUCTNAME>
<ZBOZI_PRODUCTNO>vv61</ZBOZI_PRODUCTNO>
<OZNACENO>0</OZNACENO>
</SHOPITEM>
</SHOP>
을하지만 지금 잘못 출력은 다음과 같습니다
10 그리고 내 XSL 어트 변환이있다 :
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="xhtml">
<xsl:output method="xml" indent="yes" encoding="utf-8" />
<xsl:strip-space elements="ZBOZI_CELA_CESTA" />
<xsl:param name="clientXml" select="'FEED_DATA.xml'" />
<xsl:variable name="client" select="document(`$`clientXml)//zbozi_FEED_DATA" />
<xsl:template match="SHOPITEM/CATEGORYTEXT">
<CATEGORYTEXT>
<xsl:value-of select="$client[PRODUKT_ID=current()/../ITEM_ID]/ZBOZI_CELA_CESTA" />
</CATEGORYTEXT>
</xsl:template>
<xsl:template match="SHOPITEM/PRODUCT">
<PRODUCT>
<xsl:value-of select="$client[PRODUKT_ID=current()/../ITEM_ID]/ZBOZI_PRODUCT" />
</PRODUCT>
</xsl:template>
<xsl:template match="SHOPITEM/PRODUCTNAME">
<PRODUCTNAME>
<xsl:value-of select="$client[PRODUKT_ID=current()/../ITEM_ID]/ZBOZI_PRODUCTNAME" />
</PRODUCTNAME>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
, 사람이 도움을 줄 수주십시오?
안녕하십니까. 특정 질문을하고 코딩을 시도하고 실패한 곳을 알려주십시오. 광범위한 질문을하거나 숙제를 완료하라고 요청하지 마십시오. – alexisdevarennes
안녕 Alexis, 나는 2 달 이상이 xsl의 다른 setttings를 시도했기 때문에 나는 거기에서 바로 실패하지만 아직 작동하지 않습니다. 그리고 여전히이 요소가 transfomation 이후 두 번째 XML에서 빠진 경우 요소가 최종 XML에서 비어 있습니다. 그리고 빈 요소는 매일 확인하고 수동으로 포함해야합니다. 그러므로 나는 그것을 어떻게하는지 모른다. –