XSLT를 처음 사용했습니다. 지정된 속성을 기반으로 기존 XML 문서를 다시 작성 (복사)하려고합니다. 예를 들어 XML 필터링 용 XSLT
는 아래의 XML로, 나는 속성 태그가 교훈을 얻고 싶은 = "6"예상과 그룹 = "Book1을"<Groups>
<mainGroup id="1" group="Book1">
<subGroup name="Chapter 1">
<lesson name="Lesson1" tags="1" />
<lesson name="Lesson2" tags="2" />
</subGroup>
<subGroup name="Chapter 2">
<lesson name="Lesson1" tags="3" />
<lesson name="Lesson2" tags="4" />
</subGroup>
<subGroup name="Chapter 3">
<subGroup name="Chapter 3 Examples">
<lesson name="Lesson2" tags="5" />
</subGroup>
<lesson name="Lesson1" tags="6" />
</subGroup>
</mainGroup>
<mainGroup id="1" group="Book2">
<subGroup name="Chapter 1">
<lesson name="Lesson1" tags="1" />
<lesson name="Lesson2" tags="2" />
</subGroup>
<subGroup name="Chapter 2">
<lesson name="Lesson1" tags="3" />
<lesson name="Lesson2" tags="4" />
</subGroup>
<subGroup name="Chapter 3">
<subGroup name="Chapter 3 Examples">
<lesson name="Lesson2" tags="6" />
</subGroup>
<lesson name="Lesson1" tags="5" />
</subGroup>
</mainGroup>
</Groups>
의 속성을 가지고 mainGroup에서 (예상) 아래 후 XSL의 결과로 지금까지 XSL 등
<Groups>
<mainGroup id="1" group="Book1">
<subGroup name="Chapter 3">
<lesson name="Lesson1" tags="6" />
</subGroup>
</mainGroup>
</Groups>
을 적용, 지금까지 함께 왔어요 가장 가까운 내가 입수 한 것입니다 :
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*" name="identity">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
// Remove all maingroups that are not book1
<xsl:template match="mainGroup[not(@group='Book1')]" />
// Remove all lessons that do not have tags of 5
<xsl:template match="lesson[not(@tags='5')]" />
</xsl:stylesheet>
,536,913,632 내가 해봤 어떤 일이 (다시 웃음하지 마십시오
- - 새로운 지금 비어있는 하위 그룹을 제거하는 방법을 알아낼 수 없습니다
<Groups>
<mainGroup id="1" group="Book1">
<subGroup name="Chapter 1" />
<subGroup name="Chapter 2" />
<subGroup name="Chapter 3">
<subGroup name="Chapter 3 Examples">
<lesson name="Lesson2" tags="5" />
</subGroup>
</subGroup>
</mainGroup>
</Groups>
: 나에게의 XML 결과를 제공 10
이 XSL :))
에 희망이 교훈 노드를 가지고 있지 않은 자들을 제거 -하지만 무엇을 할 것 같지 않았다
<xsl:template match="subGroup[count(lesson) = 0]" />
<xsl:template match="subGroup[not(node())]" />
및 이 같은도 뭔가 ---
<xsl:template match="subGroups" mode="copy">
<xsl:choose>
<xsl:when test="count(./*)">
<xsl:copy>
<xsl:apply-templates select="@*|node()" mode="copy"/>
</xsl:copy>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
그러나 나는 수건을 던지고있어 성공없이 시간 후
이 - 아, 당신은 단지 추가하거나 할 필요가 - 나는 누군가가 여기에 아마이 생각을 읽고 확신 이 - 그래서 어떤 도움을 주시면 감사하겠습니다.감사