Thursday, 19 February 2015

Can´t read some XML files?



I try to make a XML parser from Vector CANAlyzer xml file. This code work on other xml files but not on this one. Please what in have I miss in the xml standard.


I whant to parse "Network" and "Nodes".



XElement xmlDoc = XElement.Load(@"Short.xml");
var result = from c in xmlDoc.Descendants("Network")
select new Network()
{
Network_DB_id = int.Parse(c.Attribute("DB_ID").Value),
Name = (string)c.Element("Name").Value,
ListNode = from f in c.Descendants("Node")
select new Node()
{
Node_DB_id = int.Parse(f.Attribute("DB_ID").Value),
Name = (string)f.Element("Name").Value,
}
};
return result.ToList();



public class Network
{
public string Name { get; set; }
public int Network_DB_id { get; set; }
public IEnumerable<Node> ListNode { get; set; }
}
public class Node
{
public string Name { get; set; }
public int Node_DB_id { get; set; }

public IEnumerable<Message> ListTXMessage { get; set; }
public IEnumerable<Message> ListRXMessage { get; set; }

}


XML File:



<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Network DB_ID="-4095">
<Name>SPACE4000</Name>
<Attribute>
<Name>BusType</Name>
<Value>CAN</Value>
</Attribute>
<Node DB_ID="4">
<Name>Space</Name>
<TxMessage DB_ID="88">
<Name>ST_status_1</Name>
<ID>0x520</ID>
<Frametype>CAN Standard</Frametype>
<DLC>8</DLC>
<Comment></Comment>
<Signal DB_ID="701">
<Name>oil2</Name>
<Bitposition>2</Bitposition>
<Bitsize>1</Bitsize>
<Byteorder>Intel</Byteorder>
<Valuetype>Unsigned</Valuetype>
<Factor>1</Factor>
<Offset>0</Offset>
<Minimum>0</Minimum>
<Maximum>0</Maximum>
<Unit></Unit>
<Comment></Comment>
</Signal>
</TxMessage>
</Node>
</Network>
}

No comments:

Post a Comment