2015-01-19 6 views
-1

xslt와 구문 분석해야하는 xml 파일이 있지만 문제는 루트 노드에서 xml 파일의 구문 분석을 허용하지 않는 링크가 있습니다. xml 파일에서 해당 링크를 삭제하면 파일을 구문 분석 할 수 있습니다.XSLT로 XML을 구문 분석하여 루트 노드에서 문제 발생

<?xml version="1.0" encoding="utf-8"?> 
<ROOT xmlns="http://link.org/3.2.1"> 
    <TOP-LEVEL-PACKAGES> 
    <AR-PACKAGE> 
     <SHORT-NAME>ActiveEcu</SHORT-NAME> 
</AR-PACKAGE> 
</TOP-LEVEL-PACKAGES> 
</ROOT> 

하지만 XML 파일을 수정해서는 안됩니다, 그래서 나는이없이 그 링크를 삭제 구문 분석 할 수있는 솔루션을 필요 XML 파일은 다음과 같습니다. 어떤 해결책이 있습니까?

답변

0

스타일 시트 노드에 다음과 같이 추가합니다. xmlns : ns1 = "link.org/3.2.1"; 루트 노드를 참조 할 때 다음 구문을 사용하십시오. ns1 : ROOT

기본적으로 ROOT 노드는 URL을 나타내는 기본 네임 스페이스에 연결됩니다. XSLT 템플릿에서 당신은 ROOT 노드가 주어진 XML의 모든 자식 노드가 URL로 표현되는 기본 네임 스페이스를 속하는 사실 특정 네임 스페이스

에 속하는 XSLT 파서에게 URL로 namspace을 언급해야

예를 들어

<xsl:stylesheet version="1.0" 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
          exclude-result-prefixes="xsl" 
       xmlns:ns1="http://link.org/3.2.1"> 
    <xsl:template match="/"> 
    <xsl:value-of select="ns1:ROOT"/> 
    </xsl:template> 
</xsl:stylesheet> 
+0

답변 Saurav 주셔서 감사합니다,하지만 난 이미 시도하고 작동하는 것 같다하지 않습니다 .. :( –

+0

당신이 XSLT를 게시 할 수 있습니다 – Saurav

+0

' 이름 = "xmlns : msxsl ="urn : schemas-microsoft-com : xslt "xmlns : ' –