2010-02-24 5 views
0

해결하기가 쉽지만 단서가없는 뭔가가 붙어 있습니다. 다음과 같이쉼표로 구분 된 XML을 작성하는 XSL 도움말

내 XML 데이터는 다음과 같습니다 -

<?xml version="1.0" encoding="utf-8"?> 
<?xml-stylesheet type="text/xsl" href="GetTicketCategories.xsl"?> 
<ArrayOfCategory xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://test.com/test/"> 
    <Category> 
    <Name>Benefits</Name> 
    <Count>29</Count> 
    </Category> 
    <Category> 
    <Name>Building Control</Name> 
    <Count>4</Count> 
    </Category> 
</ArrayOfCategory> 

XSL 파일 : -

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!-- Edited by XMLSpy® --> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:output method="text"/> 
<xsl:template match="Category"> 

<xsl:value-of select="Name"/> 
<xsl:text>, </xsl:text> 
<xsl:value-of select="Count"/> 
<xsl:text>, </xsl:text> 

</xsl:template> 
</xsl:stylesheet> 

출력은 : -

Benefits29Building Control4 

가에 문제가있는 것 같습니다 그것의 형식을 좋아하지 않는 상위 요소 예 <ArrayOfCategory xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://ctronix.com/smartticketservice/">

내가 XML을 변경할 수있는 위치에 아니에요하지만 난 코드를 단순화 경우는 다음과 같이 작동합니다 -

변경된 XML : -

<?xml version="1.0" encoding="utf-8"?> 
<?xml-stylesheet type="text/xsl" href="GetTicketCategories.xsl"?> 
<ArrayOfCategory> 
    <Category> 
    <Name>Benefits</Name> 
    <Count>29</Count> 
    </Category> 
    <Category> 
    <Name>Building Control</Name> 
    <Count>4</Count> 
    </Category> 
</ArrayOfCategory> 

XSL : -

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!-- Edited by XMLSpy® --> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:output method="text"/> 
<xsl:template match="ArrayOfCategory/Category"> 

<xsl:value-of select="Name"/> 
<xsl:text>, </xsl:text> 
<xsl:value-of select="Count"/> 
<xsl:text>, </xsl:text> 

</xsl:template> 
</xsl:stylesheet> 

올바른 출력 : -

Benefits, 29, Building Control, 4, 

그렇다면 기존 XML 파일을 사용하여 필요한 출력을 얻으려면 어떻게해야합니까? 사용 방법을 모르겠다. 템플릿 일치 부분에

<ArrayOfCategory xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://ctronix.com/smartticketservice/"> 

을 입력하십시오.

나는 완전 초보다고 고백해야한다. 어떤 도움이라도 대단히 감사 할 것입니다.

건배

리치

답변

0

그것은 모든 텍스트 요소를 출력에 디폴트 있도록 게시 된 첫 번째 XSL 템플릿, 아무것도 일치하지 않는 것 같습니다.

<?xml version="1.0" encoding="ISO-8859-1"?> 

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="text"/> 

<xsl:template match="/ArrayOfCategory/Category"> 

    <xsl:value-of select="Name"/> 
    <xsl:text>, </xsl:text> 
    <xsl:value-of select="Count"/> 
    <xsl:text>, </xsl:text> 

</xsl:template> 
</xsl:stylesheet> 
+0

과 같이 간단! 대단히 감사합니다. –

0

당신은 XSL 네임 스페이스에 XML에서 사용 참조해야한다 "는 XML의 루트에서 모든 ArrayOfCategory/카테고리를 선택"로 번역 /ArrayOfCategory/Category를 사용 -

당신은 템플릿 매칭을 변경해야 . 이 XSL을 확인하십시오

 
<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:t="http://test.com/test/"> 
    <xsl:output method="text"/> 
    <xsl:template match="t:ArrayOfCategory/t:Category"> 
    <xsl:value-of select="t:Name"/> 
    <xsl:text>,</xsl:text> 
    <xsl:value-of select="t:Count"/> 
    <xsl:text>,</xsl:text> 
    </xsl:template> 
</xsl:stylesheet> 

을이 XML로 :

 
<?xml version="1.0" encoding="utf-8"?> 
<?xml-stylesheet type="text/xsl" href="GetTicketCategories.xsl"?> 
<ArrayOfCategory xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://test.com/test/"> 
    <Category> 
    <Name>Benefits</Name> 
    <Count>29</Count> 
    </Category> 
    <Category> 
    <Name>Building Control</Name> 
    <Count>4</Count> 
    </Category> 
</ArrayOfCategory> 

결과 :

 
Benefits,29,Building Control,4, 
관련 문제