XML子代-根据长度获取值
本文关键字:获取 子代 -根 XML | 更新日期: 2023-09-27 17:59:47
嗨,我有一个xml文件,如下所示。
<findAddressCoordinatesList>
<findAddressCoordinatesListItem>
<id>1</id>
<description>Electricity Sub Station 1M From ...</description>
</findAddressCoordinatesListItem>
<findAddressCoordinatesListItem>
<id>2</id>
<description>Beauchamp House, Greyfriars Road, ...</description>
</findAddressCoordinatesListItem>
</findAddressCoordinatesList>
我想根据描述创建一个地址列表,但描述可以是可变长度的。我想我可能需要使用分隔符逗号和获取数组长度来分割描述,然后根据长度分配各个字段值。
有什么建议吗?最好的方法是什么?
XDocument xmldocLinq = XDocument.Parse(Xmlstring);
List<Address> AddressList = (from info in xmldocLinq.Descendants("findAddressCoordinatesListItem")
select new Address
{
Id = int.Parse(info.Element("Id").Value),
Number = (info.Element("description").Value.ToString().Split(',')[len -5]) //only if not null
Building = info.Element("description").Value.ToString().Split(',')[len -4], //only if not null
Street = info.Element("description").Value.ToString().Split(',')[len -3],
Town = info.Element("description").Value.ToString().Split(',')[len -2],
Postcode = info.Element("description").Value.ToString().Split(',')[len -1],
}).ToList();
因为您已经知道描述中会有什么以及所有的标签,所以最好将这些标签保存在描述中。
示例,
<description>
<number> ## </umber>
<building> XYZ </building>
<street> XXX </street>
<town> YYY </town>
<postcode> #### </postcode>
</description>
我想这是写地址的最好方法。
PS:您也可以访问循环中的这些元素