XML后代 - 根据长度获取值

时间:2016-08-02 10:39:14

标签: c# xml

您好我有一个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();

1 个答案:

答案 0 :(得分:0)

由于您已经知道描述中的标记和所有标记,因此最好将这些标记保留在描述中。

实施例,

{{1}}

我想这是写地址的最好方法。

PS:您也可以在循环中访问这些元素