xsl을 사용하여 xml을 정렬하려고합니다. xml.com에서 샘플을 얻었습니다. 그것은 논리적이고 직관적 인 것처럼 보입니다. 나는 그것을 정렬하지 않는 방법을 시도했다. 그것의 주위에 나의 머리를 얻는 그것의 단단한. 여기 간단한 XSL 정렬 문제
내가 아래<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="SharePointSites">
<xsl:copy>
<xsl:apply-templates>
<xsl:sort select="Document/@Name"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
정렬에 사용하고있는 XSL, 내가 정렬을 시도하고있는 XML이다. 출력도 동일합니다. 그것의 태그의 계층 구조의 명백한 누락. xml.com 샘플에서 알 수 있듯이 위의 match 및 select 태그를 사용하여 태그의 전체 계층 구조를 지정해 보았습니다.
<SharePointSites>
<Site Url="http://workspace.imperial.ac.uk/Activities/default.aspx" Name="Activities">
<Directory Name="Public">
<Document Url="http://workspace.imperial.ac.uk/Activities/Public/Imperial Activities Limited reg no etc.doc" Name="Imperial Activities Limited reg no etc.doc"/>
<Document Url="http://workspace.imperial.ac.uk/Activities/Public/Property Enqiry Form.DOC" Name="Property Enqiry Form.DOC"/>
<Document Url="http://workspace.imperial.ac.uk/Activities/Public/New Property Enquiry Form.doc" Name="New Property Enquiry Form.doc"/>
<Document Url="http://workspace.imperial.ac.uk/Activities/Public/52 Princes Gardens.pdf" Name="52 Princes Gardens.pdf"/>
<Document Url="http://workspace.imperial.ac.uk/Activities/Public/Silwood Web site Photo's.ppt" Name="Silwood Web site Photo's.ppt"/>
<Document Url="http://workspace.imperial.ac.uk/Activities/Public/Service charge.pdf" Name="Service charge.pdf"/>
<Document Url="http://workspace.imperial.ac.uk/Activities/Public/SPIP-G.pdf" Name="SPIP-G.pdf"/>
<Document Url="http://workspace.imperial.ac.uk/Activities/Public/Silwood Business Park pictures.doc" Name="Silwood Business Park pictures.doc"/>
</Directory>
<Directory Name="Internal"/>
</Site>
</SharePointSites>
outup은 여전히 동일합니다. 다음은 XML 문서에서 변환을 적용하는 방법입니다.
XslCompiledTransform myXslTrans = new XslCompiledTransform();
//load the Xsl
myXslTrans.Load(@"C:\My code\dotNet Development\SharepointXML\WebService1\SharepointSiteContent.xslt");
//do the actual transform of Xml document
myXslTrans.Transform(aDoc, null, TransformedxmlWriter);
// Set to document
aTransforemdDoc.InnerXml = aTransformedStrbulider.ToString();
댓글이 형식화하는 옵션이없는 템플릿을 변환 정체성을 다시 사용합니다. 그러므로 대답으로 게시하시기 바랍니다 위의 내 게시물을 참조하십시오. – user376250
Jim에게 자세한 설명을 해주셔서 감사드립니다. 마지막 게시물에서 언급했을 때 정체성 변환에 대해 배웠습니다. 문제를 먼저 해결하고 최적화를 시도하기 때문에 적용하지 않았습니다. 사용 된 xsl 출력은 여전히 동일합니다. 변환을 적용하는 동안 나는 잘못된 일을하고 있습니까? 질문 본문에 코드를 추가했습니다. – user376250
금이갔습니다. 그것은 코드에서 어리석은 실수였습니다. 모든 도움과 지원에 다시 한 번 감사드립니다. – user376250