删除没有属性的节点

时间:2011-10-17 23:53:25

标签: asp.net xml

我使用的是asp.net,我有一个从第三方网站提供的xml文件。我希望它被刮掉,所以它只显示第一个主节点。我的问题是任何节点都没有属性。我该如何设法删除它们?

以下是xml。

<?xml version="1.0"?>
<offers>
  <class_offer>
    <name><![CDATA[Learn to surf and save 52% at Muriwai Surf School]]></name>
    <url>http://domain.co.nz/wai-surf-school-just-29</url>
    <location>Auckland</location>
  </class_offer>
  <class_offer>
    <name><![CDATA[$35 for a 30 minute luxury Slipper Bath experience for TWO]]></name>
    <url>http://domain.co.nz/uxury-slipper-bath-experience-for-two</url>
    <location>Auckland</location>
  </class_offer>
  <class_offer>
    <name><![CDATA[Save 52% at Te Aroha Mineral Spas]]></name>
    <url>http://domain.co.nz/rience-for-two-PLUS-massage</url>
    <location>Auckland</location>
  </class_offer>
</offers>

我想在下面这样做,只保留第一个(最后2 "<class_offer>"已删除,"<location>"已删除)

<?xml version="1.0"?>
<offers>
  <class_offer>
    <name><![CDATA[Learn to surf and save 52% at Muriwai Surf School]]></name>
    <url>http://domain.co.nz/wai-surf-school-just-29</url>
  </class_offer>
</offers>

我真的不知道在节点中没有属性的情况下要删除该怎么做。如果有人能帮助那就太好了!提前致谢。

1 个答案:

答案 0 :(得分:0)

从头到尾:

XElement root = XElement.Parse(xml);
XElement firstNode = root.Element("offers").Elements().First();
firstNode.Element("location").Remove();
foreach(XElement x in root.Element("offers").Elements().Skip(1))
  x.Remove();