2013-05-22 8 views
0

XML 속성 'POSITON'을 'node'XML 요소에 조건부로 추가하는 방법이 필요합니다. 현재는 조건 검사를 먼저 수행하고 노드를 작성합니다. "널 (null)"을 사용XML 속성을 조건부로 추가

if (lvl == 2) 
     node = <node COLOR={ color } CREATED={ epochTimeMillis } ID={ idGen } POSITION={ position } LINK={ link } MODIFIED={ epochTimeMillis } STYLE="bubble" TEXT={ f.getName() }> 
       <edge COLOR={ color } STYLE={ style } WIDTH={ width }/> 
      </node> 
else 
     node = <node COLOR={ color } CREATED={ epochTimeMillis } ID={ idGen } LINK={ link } MODIFIED={ epochTimeMillis } STYLE="bubble" TEXT={ f.getName() }> 
       <edge COLOR={ color } STYLE={ style } WIDTH={ width }/> 
      </node> 
    } 

답변

2

좋은 방법이 아닙니다,하지만이 경우 그것은 당신에게 도움이 될 :

scala> <root ta={ if (true) "true" else null } fa={ if (false) "false" else null } /> 
res0: scala.xml.Elem = <root ta="true" ></root> 
+0

감사와

val pos = if (lvl == 2) { Some(position) } else { None } 

, 그것은했다. 이전에 ""시도했지만 null을 사용해야합니다. – gosanjeev

0

A는 똑같은 @senia을 할 수있는 약간 청소기 방법에서 알 수 있습니다 :

val posOpt = if (lvl2) Some(myPosition) else None 
    val xml = <mydata position={posOpt orNull}/> 
0

한 가지 방법은 조각을 만드는 것입니다 전에 :

val pos = 
    if (lvl == 2) { 
    "position = ..." 
    } else { 
    "" 
    } 

과 항상 결과에 삽입하십시오.

은 문자열 보간과 함께 임베디드 지도와 함께 옵션를 사용하여 확장으로 할 수있다.

pos.map(v => s"position = $v") 
관련 문제