2017-12-26 3 views
0

나는 JMustache을 사용하고 있지만이 질문은 모든 구현에서 동일하다고 상상해보십시오.XML을 사용하여 콧수염 템플리트 사용

나는 Mustache를 사용하여 XML 파일을 생성하고 있습니다. 목록이 비어 있으면 부모 태그가 표시되지 않게 할 수 있습니다. 목록이 비어 있지 않으면 부모 태그를 한 번 표시하고 싶습니다. 나는 콧수염 템플렛이 어떻게 보일지 생각해보고있다.

예를 들어 나는 데이터 입력을 기반으로 생성 될 필요가있는 두 개의 XML 파일 중 하나가 될 수 있습니다

<class> 
    <name>Basketweaving</name> 
    <students> 
     <student>Joe Smith</student> 
     <student>Sally Smithers</student> 
    </students> 
</class> 

나 :

<class> 
    <name>Basketweaving at a bad time</name> 
</class> 

나는 데 문제가있는 경우입니다 내 템플릿을 다음과 같이 정의합니다.

<class> 
    <name>{{className}}</name> 
    <students> 
    {{#students}} 
     <student>{{studentName}}</student> 
    {{/students}} 
    </students> 
<class> 

그런 다음 빈 클래스에는 여전히 students 블록이 있습니다.

<class> 
     <name>Basketweaving at a bad time</name> 
     <students> 
</students> 
    </class> 

그리고 루프 이동하는 경우 :

예 :

<class> 
    <name>{{className}}</name> 
    {{#students}} 
    <students> 
     <student>{{studentName}}</student> 
    </students> 
    {{/students}} 
<class> 

내가 첫 번째 예에서 반복 학생들하게 될 겁니다를

<class> 
    <name>Basketweaving</name> 
    <students> 
     <student>Joe Smith</student> 
    </students> 
    <students> 
     <student>Sally Smithers</student> 
    </students> 
</class> 

원하는 동작을 수행하기 위해 템플릿을 수행하는 적절한 방법은 무엇입니까?

답변

0

나는 내 자신의 질문에 대한 해답을 알아 냈다. JMustache으로 템플릿은 다음과 같이해야합니다 :

<class> 
    <name>{{className}}</name> 
    {{#students}} 
    {{#-first}}<students>{{/-first}} 
     <student>{{studentName}}</student> 
    {{#-last}}</students>{{/-last}} 
    {{/students}} 
<class> 

- 첫 루프의, 정중하게, 첫 번째 또는 마지막 반복 해당 특수 플래그 - 마지막입니다.

결과적으로 위의 코드는 students 루프의 첫 번째 항목을 반복하면서 <students> 만 출력합니다. 마찬가지로 </students>은 students 루프를 입력하는 동안에 만 출력됩니다.

학생이 빈 목록 인 경우 <students> </students>은 출력되지 않지만 하나 이상의 항목이있는 경우 항목은 <students> </students>으로 둘러싸여 있음을 의미합니다.

관련 문제