[英]Find Attribute Value in XML file VB.net
我有以下详细信息包括xml文件。
<?xml version="1.0" encoding="utf-8"?>
<LoadSurveyValues>
<LoadSurvey timeStamp="18/12/2015 11:13:02" saveMode="SnapShot">
<Date Date="18/12/2015 00:00:00">
<ParamValues Type="ActiveTotalImport" Unit="kWh">
<SipValues Time="00:15" ParamValue="0" />
<SipValues Time="00:30" ParamValue="0" />
<SipValues Time="00:45" ParamValue="0" />
<SipValues Time="01:00" ParamValue="0" />
<SipValues Time="01:15" ParamValue="0.5" />
<SipValues Time="01:30" ParamValue="0.1" />
<SipValues Time="01:45" ParamValue="0" />
<SipValues Time="02:00" ParamValue="0" />
<SipValues Time="02:15" ParamValue="0" />
<SipValues Time="02:30" ParamValue="0" />
等等
我想在“日期”日期18/12/2015,“ ParamValues”类型ActiveTotalImport”和“ SipValue”时间01:15中找出“ ParamValue”属性值,结果应为0.5。
这些是我在VB.net中使用列表框尝试过的代码。
Dim xr As XmlReader = XmlReader.Create("meter 01.xml")
If ListBox1.SelectedIndex >= 0 Then
If ListBox2.SelectedIndex >= 0 Then
If ListBox3.SelectedIndex >= 0 Then
If xr.NodeType = XmlNodeType.Element And xr = ListBox1.SelectedIndex And xr = ListBox2.SelectedIndex And xr = ListBox3.SelectedIndex Then
ListBox4.Items.Add(xr.GetAttribute(1))
End If
End If
End If
End If
ListBox1选择了18/12/2015 00:00:00值,ListBox2选择了ActiveTotalImport值,ListBox3选择了01:15值。 因此,结果将添加到值为0.5的ListBox4中。 但是此代码不起作用,请帮我解决
试试xml linq
Imports System.Xml
Imports System.Xml.Linq
Module Module1
Const FILENAME As String = "c:\temp\test.xml"
Sub Main()
Dim doc As XDocument = XDocument.Load(FILENAME)
Dim survey As XElement = doc.Descendants("LoadSurvey").Where(Function(x) x.Attribute("timeStamp").Value = "18/12/2015 11:13:02").FirstOrDefault()
Dim ParamValue As String = survey.Descendants("SipValues").Where(Function(x) x.Attribute("Time").Value = "01:15").Select(Function(y) y.Attribute("ParamValue")).FirstOrDefault()
End Sub
End Module
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.