Scala XML模式匹配和属性
发布时间:2020-12-16 09:11:57 所属栏目:安全 来源:网络整理
导读:首先:我在 Scala 2.8 在XML元素上使用模式匹配时,我有一个小问题.我知道我可以做这样的事情: val myXML = abMy Text/b/amyXML match { case ab{theText}/b/a = println(theText) case _ =} 这是我在网上和我的两个斯卡拉书中找到的一个例子.但是,如果我想
首先:我在
Scala 2.8
在XML元素上使用模式匹配时,我有一个小问题.我知道我可以做这样的事情: val myXML = <a><b>My Text</b></a> myXML match { case <a><b>{theText}</b></a> => println(theText) case _ => } 这是我在网上和我的两个斯卡拉书中找到的一个例子.但是,如果我想根据一个属性匹配一个XML元素呢? val myXML = <a><b type="awesome">An awesome Text!</b></a> myXML match { case <a><b type={textType}>{theText}</b><a> => println("An %s text: %s".format(textType,theText)) case _ => } 编译器会抛出一个错误:在XML文字中:’>’预期而不是’t’在我,表示我不能使用属性,因为编译器期望元素标记被关闭.如果我尝试将一个XML元素与固定属性相匹配,没有花括号,同样的错误会引发. 所以我的问题很简单:我该怎么做这样的比赛?我必须为比赛创建一个Elem,而不是使用那些很好的文字?如果:最好的办法是什么? 解决方法
处理属性更是一种痛苦,它应该是.这个具体的例子实际上表明,Scala并没有像它这样构造它们一样解构XML
语法对XML文字有效.无论如何,这是一种方式: myXML match { case <a>{b @ <b>{theText}</b>}</a> => println("An %s text: %s".format(b "@type",theText)) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |