2017-12-28 27 views
1

입력 파일에 다른 네임 스페이스가 있습니다. 그러나, 내 요구 사항에 대한 1 xslt 처리해야합니다.XSLT에서 네임 스페이스 무시

입력 파일 1 :

<header xmlns="urn:xyz:hello"> 
     <body> 
      <element1>hi</element1> 
      <element2>sen</element2> 
     </body> 
    </header> 

입력 파일 2 :은 위의 샘플과 유사

<header xmlns="urn:abc:hello1"> 
    <body> 
     <element1>hi</element1> 
     <element2>sam</element2> 
    </body> 
</header> 

, 내가 urn:cdf:well, urn:cdf:hello, ....

이 어떻게 다른 네임 스페이스와 파일을 얻을 것 나는 1xslt에서 이것을 처리합니까?

귀하의 조언을 많이 듣습니다.

감사 센 대신 다음 템플릿을 사용하는 의 정체성 서식 파일의

+0

"처리 할 필요가 있음"을 실제로 말하는 것은 무엇을 의미합니까? 네임 스페이스를 제거하기 만 하시겠습니까? 아니면 네임 스페이스를 그대로 유지 하시겠습니까? 네임 스페이스를 그대로 사용 하시겠습니까? 각 경우에 예상되는 결과를 보여 주면 도움이됩니다. 고맙습니다. –

답변

1

, 는 네임 스페이스를 "삭제".

<xsl:template match="*"> 
    <xsl:element name="{local-name()}"> 
    <xsl:apply-templates select="@*|node()"/> 
    </xsl:element> 
</xsl:template> 

<xsl:template match="@*"> 
    <xsl:attribute name="{local-name()}"> 
    <xsl:value-of select="."/> 
    </xsl:attribute> 
</xsl:template> 
+0

안녕하세요, 위의 템플릿을 내 xslt에 추가하려고했습니다. 하지만 출력은 null입니다! – Sen

+0

아마 당신의 스크립트는 다른보다 구체적인 템플릿을 가지고 있으며 (대신에) "실행"됩니다. 이 (광산) 템플릿으로 시작하여 "오래된"템플릿을 하나씩 추가하십시오. 어쩌면 이러한 (오래된) 템플릿은 네임 스페이스 누락과 관련하여 내 솔루션을 채택해야합니다. 템플릿에 * apply-templates *가 있습니까? –