2014-12-26 2 views
-1

xslt를 처음 사용합니다. 아래에 작은 xml 코드 스 니펫이 있습니다.xslt를 사용하여 xml의 요소를 추가 할 수 없습니다.

<users xmlns="ABC_Login"> 
    <email>[email protected]</email> 
</users> 

그리고 아래 코드는 xslt입니다.

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:users= "ABC_Login" 
xmlns= "ABC_Login" > 
<xsl:output method="xml" indent="yes" encoding="UTF-8"/> 
    <xsl:template match="//users"> 
<users>    
<email><xsl:value-of select="email"/></email> 
</users> 
</xsl:template> 
</xsl:stylesheet> 

전류 출력은 다음과 같습니다

<?xml version="1.0" encoding="UTF-8"?> 
    [email protected] 

예상 출력은 다음과 같습니다

<?xml version="1.0" encoding="UTF-8"?> 
<users>  
<email>[email protected]</email> 
</users> 

아무도 나를 도와 드릴까요?

참고 : 나는 온라인 XSLT 검사기를 사용하고하는 http://xslttest.appspot.com/

답변

1

이 솔루션을 시도하십시오. 나는 XmlSpy로 확인했다. 온라인 도구가 잘 작동하지 않을 수도 있습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns1="ABC_Login" exclude-result-prefixes="ns1" version="1.0"> 
    <xsl:template match="/ns1:users"> 
     <users> 
      <email> 
       <xsl:value-of select="ns1:email" /> 
      </email> 
     </users> 
    </xsl:template> 
</xsl:stylesheet> 
0

올바른 생각이 들었습니다. XSLT에서 필요한 네임 스페이스를 선언했지만 사용하지는 않았습니다.

물론
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:users="ABC_Login" 
       xmlns="ABC_Login" > 
    <xsl:output method="xml" indent="yes" encoding="UTF-8"/> 

    <xsl:template match="/users:users"> 
    <users>    
     <email><xsl:value-of select="users:email"/></email> 
    </users> 
    </xsl:template> 
</xsl:stylesheet> 

, 이것은 단지 입력의 정확한 복사본을 만들고,이를위한 더 나은 방법이 있습니다,하지만 난 당신이 단지 연습이 일을한다고 가정 :이 그것을해야한다.

관련 문제