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();

XML子代-根据长度获取值

因为您已经知道描述中会有什么以及所有的标签,所以最好将这些标签保存在描述中。

示例,

<description>
   <number> ## </umber>
   <building> XYZ </building>
   <street> XXX </street>
   <town> YYY </town>
   <postcode> #### </postcode>
</description>

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

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