【发布时间】:2019-02-13 05:42:33
【问题描述】:
XML 文件
<Lines>
<LineEntity>
<Id>33947</Id>
<Name>SEC_137438957044</Name>
<IsUnderground>true</IsUnderground>
<R>0.209</R>
<ConductorMaterial>Steel</ConductorMaterial>
<LineType>Cable</LineType>
<ThermalConstantHeat>2400</ThermalConstantHeat>
<FirstEnd>41990</FirstEnd>
<SecondEnd>41992</SecondEnd>
<Vertices>
<Point>
<X>407566.68007470988</X>
<Y>5013899.3558040857</Y>
</Point>
<Point>
<X>407625.00589398207</X>
<Y>5013876.8697334668</Y>
</Point>
<Point>
<X>407717.51971015992</X>
<Y>5014160.9525629422</Y>
</Point>
<Point>
<X>407559.40091708023</X>
<Y>5014220.4665799234</Y>
</Point>
</Vertices>
</LineEntity>
</Lines>
我想获得这个带有积分的Vertices 对象,但我不知道如何获得它。到目前为止我尝试了什么:
var lines = xdoc.Descendants("LineEntity")
.Select(line => new Line
{
Id = (double)line.Element("Id"),
Name = (string)line.Element("Name"),
ConductorMaterial = (string)line.Element("ConductorMaterial"),
IsUnderground = (bool)line.Element("IsUnderground"),
R = (decimal)line.Element("R"),
FirstEnd = (int)line.Element("FirstEnd"),
SecondEnd = (int)line.Element("SecondEnd"),
LineType = (string)line.Element("LineType"),
ThermalConstantHeat = (int)line.Element("ThermalConstantHeat"),
Vertices = line.Descendants("Vertices").Select(p => new Point {
X = (decimal)p. //can't access Element
})
}).ToList();
【问题讨论】:
-
您需要获取后代点(不是顶点)。 List
Vertices = line.Descendants("Point").Select(p => new Point((decimal)p.Element("X"),(decimal)p.Element("Y"))).ToList ()