2016-03-24 1 views
1

I以下のコードスニペットを持っている:冗長クラスを作成せずにXmlElementの属性をdoubleとして取得するにはどうすればよいですか?

私のXMLドキュメントの次のセクションを参照する
<XmlElement("point")> _ 
       Public Property points() As List(Of Double) 
        Get 
         Return myPoints 
        End Get 
        Set(value As List(Of Double)) 
         myPoints = value 
        End Set 
       End Property 

<upperLimit color="red"> 
       <point y="12"/> 
       <point y="13"/> 
       <point y="14"/> 
       <point y="15"/> 
       <point y="16"/> 
      </upperLimit> 

私はそれを作成したい私のVBプログラムを教えしようとしています私のXML文書内の "ポイント"のリストからdoubleのリスト。私が理解できないことは、私はそれがかなりXmlAttributey

したがって、このような何か(私はこれは間違っている知っている)

<XmlElement("point").XmlAttribute("y")> _ <-- Notice this line!! 
       Public Property points() As List(Of Double) 
        Get 
         Return myPoints 
        End Get 
        Set(value As List(Of Double)) 
         myPoints = value 
        End Set 
       End Property 

innerTextだが取るXmlElementpointを見ていないし、それを伝えることができる方法です私が見る唯一の他の選択肢は、その値に属性を付けるもう一つのクラスを作成することです。私もこれについての答えを見つけるためにGoogleで検索するものを考えることができません...ありがとう!

答えて

0

この

Imports System.Xml 
Imports System.Xml.Linq 
Module Module1 

    Sub Main() 
     Dim xml As String = _ 
     "<upperLimit color=""red"">" & _ 
      "<point y=""12""/>" & _ 
      "<point y=""13""/>" & _ 
      "<point y=""14""/>" & _ 
      "<point y=""15""/>" & _ 
      "<point y=""16""/>" & _ 
     "</upperLimit>" 

     Dim doc As XDocument = XDocument.Parse(xml) 

     Dim results As List(Of Double) = doc.Descendants("point").Select(Function(x) Double.Parse(x.Attribute("y").Value)).ToList() 
    End Sub 

End Module 
をお試しください
関連する問題