1

ハイホー、

この XML ノード/要素から属性 ID を取得しようとしています。

scala> (desc(0) \ "_")(0)
res81: scala.xml.Node = <cor:attribute cor:attrDataType="int" cor:attrID="singleEventID"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cor="http://rdm.campusonline.at/">883819995</cor:attribute>

scala> (desc(0) \ "_")(0).attributes
res82: scala.xml.MetaData =  cor:attrDataType="int" cor:attrID="singleEventID"

scala> (desc(0) \ "_")(0).attribute("cor:attrID")
res83: Option[Seq[scala.xml.Node]] = None

scala> (desc(0) \ "_")(0).attribute("""attrID""")
res85: Option[Seq[scala.xml.Node]] = None

名前空間を手動で削除すると、問題なく動作します。

scala> val test4 = <attribute attrDataType="int" attrID="singleEventID" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cor="http://rdm.campusonline.at/">883819995</attribute>
test4: scala.xml.Elem = <attribute attrID="singleEventID" attrDataType="int" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cor="http://rdm.campusonline.at/">883819995</attribute>

scala> test4.attributes
res96: scala.xml.MetaData =  attrID="singleEventID" attrDataType="int"

scala> test4.attribute("attrID")
res98: Option[Seq[scala.xml.Node]] = Some(singleEventID)

名前空間を手動で削除せずに機能させるにはどうすればよいですか?

4

2 に答える 2

2

attributeこのような他の方法を使用する必要があります

(desc(0) \ "_")(0).attribute("http://rdm.campusonline.at/", "attrID")
于 2013-03-12T21:26:33.097 に答える
1

このソリューションは、属性を文字列として提供します

val CoreNs = http://rdm.campusonline.at
(desc(0) \ "_") \@ s"{$CoreNs}:attrID"
于 2016-05-09T17:47:20.197 に答える