2013-03-18 2 views
1

I가 다음과 같은 입력 XMLXML 태그와 함께 XML 노드의 아이를 가져

<?xml version="1.0" encoding="UTF-8"?> 
<Parent> 
    <ParentElement1>PE1</ParentElement1> 
    <ParentElement2>PE2</ParentElement2> 
    <Child> 
    <ChildElement1>CE1</ChildElement1> 
    <ChildElement2>CE2</ChildElement2> 
    </Child> 
</Parent> 
내가 부모 내부에 존재 자식을 추출해야

,

출력과 같이해야합니다

<Child> 
    <ChildElement1>CE1</ChildElement1> 
    <ChildElement2>CE2</ChildElement2> 
</Child>` 

I XPath 표현 /Parent/Child, 으로 시도했지만 CE1 & CE2 텍스트 만 선택합니다.

답변

1

여기서 키는 <xsl:value-of> 대신 <xsl:copy-of>을 사용하는 것입니다.

XSL 사양에서 : The xsl:copy-of element can be used to copy a node-set over to the result tree without converting it to a string..

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 
<xsl:output method="xml" indent="yes" /> 
<!-- To get rid of <?xml ... declaration, use the following: 
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" /> --> 

<xsl:template match="/"> 
    <!-- use copy-of instead of value-of --> 
    <xsl:copy-of select="/Parent/Child" /> 
</xsl:template> 

</xsl:stylesheet> 

출력 :

<?xml version="1.0" encoding="UTF-8"?> 
<Child> 
    <ChildElement1>CE1</ChildElement1> 
    <ChildElement2>CE2</ChildElement2> 
</Child> 

는 다음과 같은 스타일 시트를 사용하여

관련 문제