2017-04-08 14 views
1

를 사용하여 XML 변환 나는 아래의 오류가 발생하고 그것을 실행하면내가 XML을 아래와 같이이

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="http://schema.infor.com/InforOAGIS/2"> 
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" /> 
<xsl:template match="@*|node()"> 
<xsl:result-document href="foo.xml" method="xml"> 
    <xsl:copy> 
    <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
</xsl:result-document> 
</xsl:template> 

<xsl:template match="@key[.='user']"> 
<xsl:attribute name="key"> 
     <xsl:value-of select="'cm:user'"/> 
    </xsl:attribute> 
</xsl:template> 
</xsl:stylesheet> 

: 출력 XML은 내가 아래 XSLT와 색슨 항아리를 사용하고이

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<properties> 
<entry key="cm:user">1234</entry> 
<entry key="name">sam</entry> 
</properties> 

같아야 012 3,516,
XTDE1490 : 같은 URI에 하나 개 이상의 결과 문서에 쓸 수 없습니다 : 당신은 단순히 필요
사람이 좀 도와 주 시겠어요을 ..

답변

3

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 

<xsl:template match="@key[.='user']"> 
<xsl:attribute name="key"> 
     <xsl:value-of select="'cm:user'"/> 
    </xsl:attribute> 
</xsl:template> 

    <xsl:template match="@*|node()"> 
     <xsl:copy> 
      <xsl:apply-templates select="@*|node()"/> 
     </xsl:copy> 
    </xsl:template> 
</xsl:transform> 

당신은 결과를 정의하려면 파일 이름을 사용하여 xsl:result-document 다음 템플릿을 추가하십시오

<xsl:template match="/"> 
    <xsl:result-document href="foo.xml"> 
    <xsl:apply-templates/> 
    </xsl:result-document> 
</xsl:template> 
+0

그것은 위대한 작품. Matin Honnen에게 감사드립니다. –