2013-04-16 2 views
0

XSLT는 템플릿 엔진으로 사용됩니다. xsl : params가있는 apply-templates - 서식을 저장하는 방법은 무엇입니까?

<xsl:template match="/" mode="common-page"> 
    <xsl:param name="page-content"/> 
    … 
    <xsl:copy-of select="$page-content"/> 
    … 
</xsl:template> 

와 해당 템플릿 전화 : I가 PARAMS와 다른 데이터를 하나의 전송 템플릿의 일부 구조가 HTML 콘텐츠의 포맷이 경우

<xsl:template match="/"> 
    <xsl:apply-templates select="." mode="common-page"> 
     <xsl:with-param name="page-content"> 
     <!--some html content with formatting--> 
     <html> 
      <body> 
       <h1>Header</h1> 
       <div> 
        <p>Text</p> 
       </div> 
      </body> 
     </html> 
     </xsl:with-param> 
    </xsl:apply-templates> 
</xsl:template> 

을 유지 출력된다 :

<html> 
    <body> 
     <h1>Header</h1> 
     <div> 
      <p>Text</p> 
     </div> 
    </body> 
</html> 

하지만 <xsl:apply-templates>에서 match 또는 select을 (지정하려고하면 / 대신 /result/page) 형식이 지워집니다. 파람 page-content은 동일합니다 : XML의

<html><body><h1>Header</h1><div><p>Text</p></div></body></html> 

예 :

<result xmlns:xlink="http://www.w3.org/TR/xlink" module="content" method="content" system-build="21199" lang="ru" header="Main page" title="Main page" request-uri="/.xml" pageId="2"> 
    <meta> 
     <keywords/> 
     <description/> 
    </meta> 
    <user id="42" status="auth" login="admin" xlink:href="uobject://42" type="sv"/> 
    <parents/> 
    <page id="2" parentId="0" link="/" is-default="1" is-active="1" object-id="313" type-id="50" type-guid="content-page" update-time="1364964725" alt-name="index"> 
     <basetype id="27" module="content">Content page</basetype> 
     <name>Main page</name> 
     <properties> 
      <group id="65" name="common"> 
       <title>Params</title> 
       <property id="117" name="h1" type="string"> 
        <title>H1</title> 
        <value>Main page</value> 
       </property> 
      </group> 
     </properties> 
    </page> 
</result> 
+0

여기서 사용하는 XML 코드 샘플을 보여줄 수 있으며 서식을 "지워지도록 만드는 코드의 예"를 제공 할 수도 있습니다. 감사! '

+0

는 – safright

답변

0

는 XSLT 2.0을 사용하고 탭 들여 쓰기와 (들여 쓰기 된 결과 문서를 얻으려고 노력하는 경우 XML의 각 내부 레벨에 대해) xsl:output 요소를 xsl : stylesheet 요소에 추가하고 들여 쓰기를 사용하도록 지정해야합니다. 예를 들어

, 당신의 XSL의 시작 : 스타일 요소, ​​당신은 추가 할 수 있습니다 다음과 같은 : 일반 출력 유형에 대한 기본값을 설정 출력 요소 :

<xsl:stylesheet> 
    <xsl:output indent="yes" /> 
    <!-- rest of document --> 
</xsl:stylesheet> 

는 또한 XSL에 대한 method 속성을 참조 예 : "xml", "html"및 "xhtml".

+0

는 alredy 사용 실제 데이터를 추가 출력 방법 = "XML" \t 인코딩 = "UTF-8" \t DOCTYPE 공공 = "- // W3C // DTD XHTML 1.0 엄격한 // EN " \t 문서 타입 시스템 ="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd " \t 미디어 타입 ="text/html과 " \t 들여 쓰기 ="예 " \t undeclare-namespaces = "yes" \t 생략 - xml 선언 = "예"/>' – safright