XSLT 또는 XML로 작업 한 것은 이번이 처음입니다. 실례합니다. 나는 XSLT 웹 문서가 매우 간결하다는 것을 발견했다.XSLT를 XML 전처리기로 사용하기
입력 집합 집합에 따라 내용을 선택적으로 삭제하기 위해 처리하려는 XML 파일이 있습니다. 이 동작은 ifdef 블록을 처리하는 간단한 코드 전처리 기와 유사해야합니다.
아래 내용을 수행하는 방법을 알아 냈습니다. 그러나 "내용"변수와 같은 일부 부분이이를 처리하는 가장 좋은 방법으로 보이지 않았습니다.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" />
<xsl:param name="defines-uri" required="yes"/>
<xsl:template match="* | @*">
<xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates/></xsl:copy>
</xsl:template>
<xsl:template match="ifdef">
<xsl:variable name="contents" select="child::node()"/>
<xsl:variable name="defines" select="document($defines-uri)/defines"/>
<xsl:variable name="val" select="@select"/>
<xsl:for-each select="$defines">
<xsl:if test="def=$val">
<xsl:apply-templates select="$contents"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
주요 문제점은 정의에서 일치가 발견 된 경우 적용 템플릿입니다. 내용이 없으면 출력에서 다른 수준으로 덤프 된 정의 문서를 가져옵니다.
변환하지 않고 XML 사전 처리를 수행하는 가장 좋은 방법은 무엇입니까?
샘플 XML 문서와 예상 출력이 도움이 될 것입니다. – Tomalak