删除xDocument中的所有“<time>”节点

时间:2016-01-15 13:56:55

标签: c# xml

我似乎在删除XDocument中的节点时遇到了问题。

这是我打开文件然后在XDocument中加载文件,但是从这里我不确定如何删除所有被称为“时间”的“节点”。

using (IsolatedStorageFileStream doc = localStorage.OpenFile(xmlFile, FileMode.Open))
{
    System.Xml.Linq.XDocument test = System.Xml.Linq.XDocument.Load(doc);                 
}

以下是XML示例:

<Shape xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Latitude>51.262952</Latitude>
<Longitude>-0.596507</Longitude>
<Elevation>0</Elevation>
<AltitudeRef>Ellipsoid</AltitudeRef>
<Name>Route 2</Name>
<Description />
<Time xsi:nil="true" />
<Number xsi:nil="true" />
<Type>Route</Type>
<Extensions />
<LineColour>102</LineColour>
<LineOpacity>0.800000011920929</LineOpacity>
<LineWidth>5</LineWidth>
<ShapeType>Route</ShapeType>
<ShapeSegments>
  <ShapeSegment>
    <Points>
      <Point>
        <Latitude>51.262952</Latitude>
        <Longitude>-0.596507</Longitude>
        <Elevation>47.63</Elevation>
        <AltitudeRef>Ellipsoid</AltitudeRef>
        <Time>2016-01-15T11:58:48.0449337+00:00</Time>
        <Name>WP0</Name>
        <Type>Waypoint</Type>
        <Description>Depart Cumberland Avenue toward Weydown Lane</Description>
        <RestTicks>0</RestTicks>
        <DatabaseID>-1</DatabaseID>
      </Point>
      <Point>
        <Latitude>51.26366</Latitude>
        <Longitude>-0.595391</Longitude>
        <Elevation>45.71</Elevation>
        <AltitudeRef>Ellipsoid</AltitudeRef>
        <Time>2016-01-15T11:58:48.0469339+00:00</Time>
        <Name>WP1</Name>
        <Type>Waypoint</Type>
        <Description />
        <RestTicks>0</RestTicks>
        <DatabaseID>-1</DatabaseID>
      </Point>

我想删除所有名为“Time”的节点,然后保存。

1 个答案:

答案 0 :(得分:4)

非常简单 - 为名为Time的所有后代元素创建查询并将其删除:

test.Descendants("Time").Remove()