要素内にあると呼ばれる要素がある場合とない場合があるxmlファイルを解析して<Popular>
います<EName>
例:
<Info>
<Enterprise>
<EName>
<Legal>Cool company</Legal>
</EName>
</Enterprise>
<Enterprise>
<EName>
<Legal>Cool company2</Legal>
<Popular>The company 2</Popular>
</EName>
</Enterprise>
</Info>
次のようにscala scales xmlを使用します。
val Info = NoNamespaceQName("Info")
val Enterprise = NoNamespaceQName("Enterprise")
val EName = NoNamespaceQName("EName")
val Legal = NoNamespaceQName("Legal")
val Popular = NoNamespaceQName("Popular")
val EnterprisePath = List(Info, Enterprise)
val itr = iterate(EnterprisePath, xml)
for {
enterprise <- itr
enterpriseName <- enterprise \* EName \* Legal
enterprisePopularName <- enterprise \* EName \* Popular
} {
// Do fun stuff
Logger.info("enterprise: "+enterpriseName + " "+enterprisePopularName)
}
何が起こるかというと、Popular 要素が存在しない場合、for ステートメントは実行されず、yield ステートメントは実行されません。
私が望むのは、最初に要素をチェックし、Popular 要素が空の場合は、enterprisePopularName を空の文字列に設定することです
何かのようなもの:
<- if((enterprise \* EName \* Popular)) enterprise \* EName \* Popular else ""
しかし、私はそれを理解することはできません。私はscalaの初心者だからだと思います。