【发布时间】:2015-04-20 11:37:14
【问题描述】:
我尝试从 Vector CANAlyzer xml 文件制作 XML 解析器。此代码适用于其他 xml 文件,但不适用于此文件。请问我在xml标准中有什么遗漏。
我想解析Network 和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 文件:
<?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>
【问题讨论】:
-
XML 末尾有一个“}”符号
-
好的,我明白了.. 它不在原始 xml 文件中,只是在我发布问题时错过了。
标签: c# xml linq parsing object