2013-08-28 2 views
1

동적으로 생성 된 XML 데이터 아일랜드를 변환하려고 시도했지만 XSL 파일을 사용하여 정렬했지만 결과는 XML 형식 또는 적절한 들여 쓰기가없는 한 줄에 정렬 된 데이터입니다. 그게 전혀 사용되지 않는 것 같습니다. XML 태그 및 결과 transformNode() 생성 된 들여 쓰기가 필요합니다.XSL 파일의 javascript XML 처리가 작동하지 않습니다.

자바 스크립트 코드 :

var sourceXML = document.getElementById(XMLViewID); //textArea containing XML 
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
xmlDoc.async = false; 
xmlDoc.loadXML(sourceXML.value); 

var xslDoc = new ActiveXObject("Microsoft.XMLDOM"); 
xslDoc.async=false; 
xslDoc.load("xsl.xsl"); 

// This should be the sorted, formatted XML data, in tree and indented format? 
var sorted = xmlDoc.transformNode(xslDoc); 

XML 데이터 :

<table> 
    <row> 
     <A>j</A> 
     <B>0</B> 
    </row> 
    <row> 
     <A>c</A> 
     <B>4</B> 
    </row> 
    <row> 
     <A>f</A> 
     <B>6</B> 
    </row> 
</table> 

xsl.xsl :

<xsl:output method="xml" indent="yes" omit-xml-declaration="no"/> 

<xsl:template match="/"> 
    <xsl:apply-templates select="table/row"> 
     <xsl:sort select="A" order="ascending"/> 
    </xsl:apply-templates> 
</xsl:template> 

<xsl:template match="row"> 
    <xsl:value-of select="A"/> 
    <xsl:value-of select="B"/> 
</xsl:template> 

내가 '들여 쓰기 = 예'와 함께 가정 '을 생략-XML 선언 = 더'결과 변환 들여 쓰기 및 서식이 없을 것을 :

<?xml version="1.0" encoding="UTF-16"?> 
    <table> 
     <row> 
     <tr> 
      <A>j</A> 
      <B>0</B> 
     </tr> 
     <tr> 
      <A>c</A> 
      <B>4</B> 
     </tr> 
     <tr> 
      <A>f</A> 
      <B>6</B> 
     </tr> 
     </row> 
    </table> 

을하지만 대신은 다음과 같습니다 c4f6j0을 한 줄에, 형식이없는, 아니 XML 태그 ...

답변

1

당신이 요소와 XML을 원하는 경우 다음

<xsl:template match="table"> 
    <xsl:copy> 
    <xsl:apply-templates select="row"> 
     <xsl:sort select="A"/> 
    </xsl:apply-templates> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="@* | node()"> 
    <xsl:copy> 
    <xsl:apply-templates select="@* | node()"/> 
    </xsl:copy> 
</xsl:template> 
+0

일치와 템플릿과 같은 코드를 작성해야 지금까지 당신의 XSLT는, 텍스트 노드를 제외한 아무 것도 생산하지 = " @ * | node()는 항등 변환입니다. 다른 템플리트에서 언급되지 않은 노드와 속성이있는 그대로 복사됩니다. [more] (http://cnx.org/content/m43518/latest/) –

+1

그 안에 xml 태그를 얻는 데 효과적이었습니다. 나는 내 다음 질문에 대한 답을 이미 알고 있다고 생각하지만 들여 쓰기 된 서식을 정렬 된 문자열에도 넣을 수있는 방법이 있습니까? 내가 얻은 결과는 모든 것이지만 들여 쓰기가없는 것입니다. 내 생각 엔 xml 결과를 표시하는 것이 무엇이든간에 xslt가이를 자동으로 추가 할 수있는 방법이 있다면 멋질 것입니다. – Andy

+0

http://stackoverflow.com/search?q=[xslt]+white+space+preserve의 답변을 검토해보십시오. –

관련 문제