【发布时间】:2016-02-11 11:40:25
【问题描述】:
我有一个相当混乱的 XML 结构,我需要对其进行处理并显示给最终用户。 XML 结构包含有关金属条的信息以及要为每个条制作的切口。目标是处理此文件,向用户显示按条形类型分组的条形列表。他们可以从此列表中选择一个栏,其中某种网格视图将显示该栏的切割。然后他们可以选择一个剪辑,该剪辑的标签信息将用于创建带有条形码和其他一些信息的标签。
XML 的结构如下所示:
<BODY>
<BAR>
<BRAN>ALSPEC</BRAN>
<SYST>Hunter 100mm Flush Glazed</SYST>
<CODE>AS308</CODE>
<DESC>Door Adaptor</DESC>
<DICL>NOTRE DAME GLOSS</DICL>
<DOCL>notre dame gloss p/coat</DOCL>
<LEN> 6500</LEN>
<STS>1</STS>
<POS> 0</POS>
<SVL> 0</SVL>
<IVL> 0</IVL>
<VROT> 0</VROT>
<VU1S> 0</VU1S>
<VU1D> 0</VU1D>
<VU2S> 0</VU2S>
<VU2D> 0</VU2D>
<LENR> 201.3</LENR>
<H> 26.5</H>
<MLT> 1</MLT>
<SCP> 0</SCP>
<BRS> 0</BRS>
<IFS> 0</IFS>
<BS1L> 0</BS1L>
<BS1R> 0</BS1R>
<BS2L> 0</BS2L>
<BS2R> 0</BS2R>
<ENTH> 0</ENTH>
<CUT>
<NUM> 1</NUM>
<TYPE></TYPE>
<ANGL> 45</ANGL>
<ANGR> 90</ANGR>
<AB1> 90</AB1>
<AB2> 90</AB2>
<IL> 2064</IL>
<OL> 2090.5</OL>
<BCOD>000000231/5/44</BCOD>
<CSNA></CSNA>
<CSNU></CSNU>
<TINA></TINA>
<DESC>Jamb - Right</DESC>
<STAT> 1</STAT>
<LBL>Job# 760 Item# 5</LBL>
<LBL>2090.5 mm</LBL>
<LBL>W2-D8/T15</LBL>
<LBL>Jamb - Right</LBL>
</CUT>
<CUT>
<NUM> 1</NUM>
<TYPE></TYPE>
<ANGL> 45</ANGL>
<ANGR> 90</ANGR>
<AB1> 90</AB1>
<AB2> 90</AB2>
<IL> 2064</IL>
<OL> 2090.5</OL>
<BCOD>000000231/2/45</BCOD>
<CSNA></CSNA>
<CSNU></CSNU>
<TINA></TINA>
<DESC>Jamb - Right</DESC>
<STAT> 1</STAT>
<LBL>Job# 760 Item# 2</LBL>
<LBL>2090.5 mm</LBL>
<LBL>D8/T23</LBL>
<LBL>Jamb - Right</LBL>
</CUT>
<CUT>
<NUM> 1</NUM>
<TYPE></TYPE>
<ANGL> 90</ANGL>
<ANGR> 45</ANGR>
<AB1> 90</AB1>
<AB2> 90</AB2>
<IL> 2064</IL>
<OL> 2090.5</OL>
<BCOD>000000231/1/43</BCOD>
<CSNA></CSNA>
<CSNU></CSNU>
<TINA></TINA>
<DESC>Jamb - Left</DESC>
<STAT> 1</STAT>
<LBL>Job# 760 Item# 1</LBL>
<LBL>2090.5 mm</LBL>
<LBL>D8/T24</LBL>
<LBL>Jamb - Left</LBL>
</CUT>
</BAR>
</BODY>
我正在寻找的结果如下所示,即左侧的树视图和右侧的 datagridview 显示作业中的所有剪切,由树视图选择过滤(仅从选定的树视图级别向下剪切)。
为了实现这一点,我尝试使用 LINQ to XML 将 XML 文件解析为我创建的类:
public List<Bars> bars = new List<Bars>();
public class Bars
{
public int Bar_id { set; get; }
public string Brand { set; get; }
public string System { set; get; }
public string Code { set; get; }
public string Description { set; get; }
public string Length { set; get; }
public string Status { set; get; }
public string NumBars { set; get; }
public List<Cuts> Cuts { set; get; }
}
public class Cuts
{
public int Cut_id { set; get; }
public int Bar_id { set; get; }
public string AngleL { set; get; }
public string AngleR { set; get; }
public string LenInn { set; get; }
public string LenOut { set; get; }
public string Barcode { set; get; }
public string Description { set; get; }
public string Status { set; get; }
public string Label1 { set; get; }
public string Label2 { set; get; }
public string Label3 { set; get; }
public string Label4 { set; get; }
}
我实际上正在寻找有关天气的建议,这是否是处理此类项目(LINQ to XML)的正确方法。我应该使用数据集还是其他形式或数据存储。
我是 XML 新手,也是关系数据库类型的新手,因此我们将不胜感激任何建议。提前致谢!
会
【问题讨论】:
-
既然 XMLReader 已经可以解析 XML,为什么还要使用 LINQ 解析 XML msdn.microsoft.com/en-us/library/cc189056(v=vs.95).aspx
标签: c# xml linq datagridview treeview