2013-11-26 14 views
0

任何人都可以指出我的解決方案的方向,從XML文件中獲取數據。我通常在VB應用程序中使用XmlDocument,並且這些工作在任何時候都完美無瑕。Windows商店應用程序對於XML文件中的每個項目

現在Windows Store應用程序不再真正支持xmlDocument,som在導入DOM但XmlNode無法使用時工作。然而,也許它只是我,但XDocument在我看來是非常困難的,並不是用於在簡單的XML文件中查找數據的邏輯。

我使用了一些類似這樣才:

xmlDevices = xmlDoc.GetElementsByTagName("Device") 
For Each xmlDevice As xmlElement In xmlDevices 
    Dim strDeviceName As String = xmlDevice.Item("DeviceName").InnerText 

    xmlModbuses = xmlDoc.GetElementsByTagName("Modbus") 
    For Each xmlModbus As xmlElement In xmlModbuses 
    Dim strModbusID As String = xmlModbus.Attributes("id").InnerText 
    Next 
Next 

我想尋求像長相數據的XML文件:

<?xml version="1.0" encoding="utf-8" ?> 
<Devices> 
<Device id="01"> 
    <DeviceName>VP18</DeviceName> 
    <Modbusees> 
    <Modbus id="01">1000</Modbus> 
    <Modbus id="02">2000</Modbus> 
    ... 
    </Modbuses> 
    <Alarms> 
    <Alarm id="01"> 
    <AlarmText>Test</AlarmText> 
    <AlarmType>Critical</AlarmType> 
    </Alarm> 
    <Alarm id="02"> 
    <AlarmText>Test</AlarmText> 
    <AlarmType>Critical</AlarmType> 
    </Alarm> 
    </Alarms> 
<Device id="02"> 
    <DeviceName>VP19</DeviceName> 
    <Modbusees> 
    <Modbus id="01">1010</Modbus> 
    <Modbus id="02">2020</Modbus> 
    ... 
    </Modbuses> 
    <Alarms> 
    <Alarm id="01"> 
    <AlarmText>Test</AlarmText> 
    <AlarmType>Critical</AlarmType> 
    </Alarm> 
    <Alarm id="02"> 
    <AlarmText>Test</AlarmText> 
    <AlarmType>Critical</AlarmType> 
    </Alarm> 
    </Alarms> 
</Device> 
</Devices> 

問候 托馬斯·尼森

回答

0

我得到它的工作跟隨。

 Dim xDoc As XDocument = XDocument.Load(xmlStream.AsStreamForRead()) 

     Dim xmlDevices = xDoc.Root.Elements("Device") 
     For Each xmlDevice In xmlDevices 
      If xmlDevice.Attribute("id").Value = RoamingSettings.Containers("Device").Values("DeviceID") Then 

       Dim xmlAlarms = xmlDevice.Descendants("Alarm") 
       For Each xmlAlarm In xmlAlarms 
        If xmlAlarm.Attribute("id").Value = strAlarmID Then 
         strAlarmDisp = xmlAlarm.Element("AlarmDisp").Value 
         strAlarmType = xmlAlarm.Element("AlarmType").Value 
         strAlarmDesc = xmlAlarm.Element("AlarmDesc").Value 
         strAlarmHelp = xmlAlarm.Element("AlarmHelp").Value 
        End If 
       Next 
      End If 
     Next 
相關問題