我正在尝试针对xml架构验证内容。我从用户那里获得一个输入并检查该值是否作为name属性的值存在。如果它确实我返回true或者如果不是false。我已经将模式加载到val中并选择了我想要的节点
val a = XML.load("schema.xml")
val nodes = (a \\ "Items")
现在有以下
<Items name="name1" type="type1" />
<Items name="name2" type="type2" />
<Items name="name3" type="type3" />
<Items name="name4" type="type4" />
用户输入值 name1
我试过
nodes.foreach(checkattr(_))
checkattr(val : elem)
{
if(elem@name == userinput) { true } else { false }
}
但是这不起作用,即使它确实这样做似乎是错误的方式,因为我想在整个遍历中只返回一次真或假,而不是我上面指定的那些。
任何指针对我都有用。
答案 0 :(得分:4)
我相信你想要的是:
scala> <foo baz="quux"/> \ "@baz"
res0: scala.xml.NodeSeq = quux
scala>
答案 1 :(得分:1)
这就是我要搜索的内容:
val isThere = dataItems \\ "@name" find { _.text == name }
if (isThere != None)
return true
else
false
发布它,因为它也可能对其他人有用