【发布时间】:2020-11-08 17:47:30
【问题描述】:
我是 XML.Linq 的新手,不知道如何创建我需要的 XML 输出。我快到了,但数据出现在错误的树结构中:
static void Main(string[] args)
{
XElement GPX = new XElement("gpx",
new XAttribute("version", "1.0"),
new XAttribute("creator", "quilkin.com"),
new XElement("trk",
new XElement("name","to_do"),
new XElement("trkseg")
)
);
Track track = GarminTrack.ParseTCX("../../App_Data/25Oct_G2a.tcx");
int count = 0;
foreach (TrackPoint tp in track.TrackPoints)
{
Position pos = tp.Positionx[0];
GPX.Add(new XElement("trkpt",
new XAttribute("lat", pos.LatitudeDegrees),
new XAttribute("lon", pos.LongitudeDegrees),
new XElement("ele", tp.AltitudeMeters)));
count++;
}
Console.WriteLine(GPX);
Console.WriteLine(String.Format("{0} Track Points Processed.", count));
Console.ReadKey();
}
输出将所有“trkpt”元素添加到根“gpx”,而不是“trkseg”元素。
<gpx version="1.0" creator="quilkin.com">
<trk>
<name>to_do</name>
<trkseg />
</trk>
<trkpt lat="50.262084" lon="-5.0499">
<ele>7</ele>
</trkpt>
<trkpt lat="50.262492" lon="-5.051214">
<ele>7</ele>
</trkpt>
<trkpt lat="50.261889" lon="-5.051892">
<ele>7</ele>
</trkpt>......
如何获得 'trkseg' 元素的句柄以便可以添加到它?
【问题讨论】:
-
您不应该添加到新的 XElement("trkseg") 中吗?所以你应该定义一个变量来保存这个元素,并在你需要它的任何地方引用它。
标签: c# linq-to-xml