разбор атрибута xml в scala - PullRequest
       0

разбор атрибута xml в scala

2 голосов
/ 04 августа 2011

Я пытаюсь проверить материал по XML-схеме.Я получаю данные от пользователя и проверяю, существует ли это значение в качестве значения для атрибута name.Если это так, я возвращаю истину или если не ложь.Я загрузил схему в val и выбрал нужные мне узлы, например

val a = XML.load("schema.xml")
val nodes = (a \\ "Items")

Теперь a имеет следующее

<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 }
}

Но это не работает, и даже если это так, это кажется неправильным способом сделать это, так как я хочу вернуть true или false только один раз за весь обходвместо того, что я указал выше.

Любые указатели были бы полезны для меня.

Ответы [ 2 ]

4 голосов
/ 04 августа 2011

Я верю, что вы хотите что-то вроде:

scala> <foo baz="quux"/> \ "@baz"
res0: scala.xml.NodeSeq = quux

scala> 
1 голос
/ 05 августа 2011

Это то, что я искал:

val isThere = dataItems \\ "@name" find { _.text == name }
if (isThere != None)
  return true
else
  false

Написал, поскольку это может быть полезно для кого-то еще

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...