Visual Basicでコーディングされたアプリケーションでxmlファイルに保存されたデータを調べようとしています.wpfを使用してビルドします.net framework 4.0を使用してWindows 7で実行します。 多くの検索を行いました。このフォーラム(と他のもの)では、私は失われています。私は適切な文書を見つけることができませんでした。誰かが私にここで答えを与えることができることを願っています。 これは私のXMLスキーマです:私は日付でソートされたxmlデータを調べ、カスタムクラスのリストを取得できますか?
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Changes">
<xs:complexType>
<xs:sequence>
<xs:element ref="change" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="change">
<xs:complexType>
<xs:sequence>
<xs:element name="engine" type="xs:string"/>
<xs:element name="reference" type="xs:string"/>
<xs:element name="code" type="xs:string"/>
<xs:element name="number" type="xs:integer"/>
<xs:element name="startdate" type="xs:date"/>
<xs:element name="stopdate" type="xs:date"/>
<xs:element name="location" type="xs:string"/>
<xs:element name="carracteristic" type="xs:string"/>
<xs:element name="tolmin" type="xs:string"/>
<xs:element name="tolmax" type="xs:string"/>
<xs:element name="correctiveaction" type="xs:string"/>
<xs:element name="correctiveactiondeadline" type="xs:date"/>
<xs:element name="duplicate" type="xs:boolean"/>
<xs:element name="type" type="xs:string"/>
<xs:element name="justification " type="xs:boolean"/>
<xs:element name="status" type="xs:string"/>
<xs:element name="nature" type="xs:string"/>
<xs:element name="ongoingactions" type="xs:string"/>
<xs:element name="actor" type="xs:string"/>
<xs:element name="timelimit" type="xs:string"/>
<xs:element name="justif" type="xs:string"/>
<xs:element name="newstatus" type="xs:string"/>
<xs:element name="linktomap" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
私が何をしたいのか、現在の日付がstartdate
とstopdate
の間に含まれているため、特定のreference
ためchange
のリストを取得することです。
これまでのところ、私は参考文献としてchange
のリストを手に入れました。
Function applicableChanges(ByVal ref As String, ByVal changesfilepath As String) As List(Of change)
Dim xmlchange As New XmlDocument
xmlchange.Load(changesfilepath)
Dim changeList As XmlNodeList
changeList = root.SelectNodes("change[reference='" & ref & "']")
End function
しかし、私はそれ以上は取得できません。
1今日(reference=ref and Now()>startdate and Now()<stopdate
)の時点で関連する変更のみを取得するにはどうすればよいですか?
私の2番目の問題は、抽出されたデータをどのように調べるかです。 changeList
はXmlNodeListです。このリストの変更ごとに属性値を取得するにはどうすればよいですか(number
、code
、...など)。
このXmlNodeListをループする方法が必要ですが、見つけられません。
私が考えたことは、私のxml要素と同じ属性を含むvbクラスchange
を作成し、何らかの形で自分のXmlNodeListを `List(Of Change) 'に変換することでした。私はそれが正しく理解されれば、これが非直列化であるかもしれないと思う。
2抽出されたデータをナビゲートするにはどのような方法がありますか?
ありがとうございました。
(https://msdn.microsoft.com/en-us/library/x6c1kb0s(V = vs.110を).aspxの)クラスを生成するために、デシリアライズデータを取得し、Linqを使用して、結果の「変更」リストから必要なオブジェクトを選択して並べ替えます。 – MrGadget