이 경우 XML과 함께 attribute
메서드가있는 네임 스페이스 URI를 사용하여 "xsi : nil"특성의 텍스트를 가져올 수 있습니다. 당신이 빈 노드가 없음입니다 고려할 경우, 당신도 속성을 귀찮게 할 필요가 없습니다,
scala> val xml = <quantity xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
xml: scala.xml.Elem = <quantity xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></quantity>
scala> xml.attribute("http://www.w3.org/2001/XMLSchema-instance", "nil")
res0: Option[Seq[scala.xml.Node]] = Some(true)
: 여기
은 작업 예입니다. 그 안에 텍스트가없는 노드를 필터링하고 headOption
을 사용하여 값을 가져옵니다. 당신이 xtract를 사용하는 경우
scala> val s1 = <quantity xsi:nil="true">12</quantity>
s1: scala.xml.Elem = <quantity xsi:nil="true">12</quantity>
scala> val s2 = <quantity xsi:nil="true"/>
s2: scala.xml.Elem = <quantity xsi:nil="true"></quantity>
scala> s1.filterNot(_.text.isEmpty).headOption.map(_.text.toInt)
res10: Option[Int] = Some(12)
scala> s2.filterNot(_.text.isEmpty).headOption.map(_.text.toInt)
res11: Option[Int] = None
감사합니다. 아마도 scala.xml이 nils를 처리하지만 분명히 처리하지 않기를 바랬습니다. – Lubiluk