XSLT를 사용하여 빈 xml 요소를 재귀 적으로 제거

제임스 H

xml에서 '빈'요소 (자식 없음, 속성 없음 또는 빈 속성)를 재귀 적으로 제거하려고합니다. 이것은 내가 가진 XSLT입니다

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

<xsl:template match="*[not(*) and
                       string-length(.)=0 and
                       (not(@*) or @*[string-length(.)=0])]">
    <xsl:apply-templates/>
</xsl:template>

이것이 입력 XML입니다. 이 XML이 빈 문자열로 변환 될 것으로 예상합니다.

<world>
    <country>
        <state>
            <city>
                <suburb1></suburb1>
                <suburb2></suburb2>
            </city>
        </state>
    </country>
</world>

하지만 대신 나는

<world>
    <country>
        <state/>
    </country>
</world>

누구든지 도울 수 있습니까? 포럼에서 많은 스레드를 조사했지만 여전히 운이 없습니다.

michael.hor257k

조건 not(*)은 자식에 포함 된 내용에 관계없이 자식이있는 모든 요소에 대해 거짓입니다.

"과일"이없는 가지의 나무를 "가지 치기"하려면 다음을 시도하십시오.

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="*[descendant::text() or descendant-or-self::*/@*[string()]]">
    <xsl:copy>
        <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="@*[string()]">
    <xsl:copy/>
</xsl:template>

</xsl:stylesheet>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Java에서 DocumentTraversal을 사용하여 XML 요소를 재귀 적으로 탐색

분류에서Dev

델파이에서 빈 디렉토리를 재귀 적으로 제거하는 방법

분류에서Dev

중첩 json 객체에서 빈 배열을 포함하는 객체를 재귀 적으로 제거합니다.

분류에서Dev

JS를 사용하여 xml 웹 서비스를 재귀 적으로 호출

분류에서Dev

Windows에서 빈 디렉터리를 재귀 적으로 삭제

분류에서Dev

빈 값이있는 해시를 재귀 적으로 삭제

분류에서Dev

XSLT를 사용하여 XML을 XML로 변환하고 특정 요소에 대한 줄 바꿈 제거

분류에서Dev

존재하는 최대 요소 수에 따라 빈 요소를 동적으로 추가하는 XSLT 변환

분류에서Dev

재귀를 사용하여 객체에서 빈 객체 제거 (vanila ES6 자바 스크립트 사용)

분류에서Dev

요소를 암시 적으로 제거하는 XSLT

분류에서Dev

재귀 함수를 사용하여 모든 중복 배열 요소 제거

분류에서Dev

사전을 재귀 적으로 반복하고 키를 제거합니다.

분류에서Dev

요소의 목록 유형에 대해 xslt를 사용하여 xml을 요소로 재구성하는 방법

분류에서Dev

Java 또는 XSLT를 사용하여 XML에서 지정된 빈 태그 세트 제거

분류에서Dev

PHP는 빈 부모 디렉토리를 재귀 적으로 삭제합니다.

분류에서Dev

XSLT 빈 요소와 부모 노드를 제거하는 방법

분류에서Dev

XSLT를 사용하여 예제 XML에서 ID 변환으로 존재하지 않는 노드 복제

분류에서Dev

XPath를 사용하여 XML에서 재귀 요소를 검색하는 방법

분류에서Dev

Ruby를 사용하여 재귀 적으로 json 트리 구축

분류에서Dev

TypeTag를 사용하여 재귀 적으로 함수 호출

분류에서Dev

lodash를 사용하여 재귀 적으로 속성 값 수집

분류에서Dev

찾기를 사용하여 재귀 적으로 폴더 이동

분류에서Dev

JQuery를 사용하여 빈 tbody 제거

분류에서Dev

xslt를 사용하여 xml에서 xml로 제목 유지

분류에서Dev

VBS를 사용하여 빈 Excel 행을 효율적으로 제거하는 방법은 무엇입니까?

분류에서Dev

xslt를 사용하여 xml에서 데이터를 복사하는 동안 과도한 요소 제거

분류에서Dev

재귀를 사용하여 속이 빈 사각형 인쇄

분류에서Dev

DQL을 사용하여 폴더를 재귀 적으로 삭제하려면 어떻게합니까?

분류에서Dev

tar를 사용하여 패턴이있는 디렉토리를 재귀 적으로 제외

Related 관련 기사

  1. 1

    Java에서 DocumentTraversal을 사용하여 XML 요소를 재귀 적으로 탐색

  2. 2

    델파이에서 빈 디렉토리를 재귀 적으로 제거하는 방법

  3. 3

    중첩 json 객체에서 빈 배열을 포함하는 객체를 재귀 적으로 제거합니다.

  4. 4

    JS를 사용하여 xml 웹 서비스를 재귀 적으로 호출

  5. 5

    Windows에서 빈 디렉터리를 재귀 적으로 삭제

  6. 6

    빈 값이있는 해시를 재귀 적으로 삭제

  7. 7

    XSLT를 사용하여 XML을 XML로 변환하고 특정 요소에 대한 줄 바꿈 제거

  8. 8

    존재하는 최대 요소 수에 따라 빈 요소를 동적으로 추가하는 XSLT 변환

  9. 9

    재귀를 사용하여 객체에서 빈 객체 제거 (vanila ES6 자바 스크립트 사용)

  10. 10

    요소를 암시 적으로 제거하는 XSLT

  11. 11

    재귀 함수를 사용하여 모든 중복 배열 요소 제거

  12. 12

    사전을 재귀 적으로 반복하고 키를 제거합니다.

  13. 13

    요소의 목록 유형에 대해 xslt를 사용하여 xml을 요소로 재구성하는 방법

  14. 14

    Java 또는 XSLT를 사용하여 XML에서 지정된 빈 태그 세트 제거

  15. 15

    PHP는 빈 부모 디렉토리를 재귀 적으로 삭제합니다.

  16. 16

    XSLT 빈 요소와 부모 노드를 제거하는 방법

  17. 17

    XSLT를 사용하여 예제 XML에서 ID 변환으로 존재하지 않는 노드 복제

  18. 18

    XPath를 사용하여 XML에서 재귀 요소를 검색하는 방법

  19. 19

    Ruby를 사용하여 재귀 적으로 json 트리 구축

  20. 20

    TypeTag를 사용하여 재귀 적으로 함수 호출

  21. 21

    lodash를 사용하여 재귀 적으로 속성 값 수집

  22. 22

    찾기를 사용하여 재귀 적으로 폴더 이동

  23. 23

    JQuery를 사용하여 빈 tbody 제거

  24. 24

    xslt를 사용하여 xml에서 xml로 제목 유지

  25. 25

    VBS를 사용하여 빈 Excel 행을 효율적으로 제거하는 방법은 무엇입니까?

  26. 26

    xslt를 사용하여 xml에서 데이터를 복사하는 동안 과도한 요소 제거

  27. 27

    재귀를 사용하여 속이 빈 사각형 인쇄

  28. 28

    DQL을 사용하여 폴더를 재귀 적으로 삭제하려면 어떻게합니까?

  29. 29

    tar를 사용하여 패턴이있는 디렉토리를 재귀 적으로 제외

뜨겁다태그

보관