如何从xml中删除标签

时间:2017-06-12 12:27:52

标签: c# xml c#-4.0 ebay-api

我有一个xml文件我想从文件中删除一些标签。我的xml数据是

    <GetCategoriesResponse xmlns="urn:ebay:apis:eBLBaseComponents">
  <Timestamp>2017-06-08T05:34:32.960Z</Timestamp>
  <Ack>Success</Ack>
  <Version>989</Version>
  <Build>E989_CORE_API_18131074_R1</Build>
  <CategoryArray>
    <Category>
      <BestOfferEnabled>true</BestOfferEnabled>
      <AutoPayEnabled>true</AutoPayEnabled>
      <CategoryID>20081</CategoryID>
      <CategoryLevel>1</CategoryLevel>
      <CategoryName>Antiques</CategoryName>
      <CategoryParentID>20081</CategoryParentID>
    </Category>
   </CategoryArray>
</GetCategoriesResponse>

我需要从文件中删除。所以我的结果应该是这样的

      <Timestamp>2017-06-08T05:34:32.960Z</Timestamp>
      <Ack>Success</Ack>
      <Version>989</Version>
      <Build>E989_CORE_API_18131074_R1</Build>
      <CategoryArray>
        <Category>
          <BestOfferEnabled>true</BestOfferEnabled>
          <AutoPayEnabled>true</AutoPayEnabled>
          <CategoryID>20081</CategoryID>
          <CategoryLevel>1</CategoryLevel>
          <CategoryName>Antiques</CategoryName>
          <CategoryParentID>20081</CategoryParentID>
        </Category>
       </CategoryArray>

我试过这个它正在发挥作用。但它在categoryarray中的命名空间

<CategoryArray xmlns="urn:ebay:apis:eBLBaseComponents">
    <Category>
      <BestOfferEnabled>true</BestOfferEnabled>
      <AutoPayEnabled>true</AutoPayEnabled>
      <CategoryID>20081</CategoryID>
      <CategoryLevel>1</CategoryLevel>
      <CategoryName>Antiques</CategoryName>
      <CategoryParentID>20081</CategoryParentID>
    </Category>
   </CategoryArray>

        XmlDocument xmldoc = new XmlDocument();
        xmldoc.LoadXml(xmlFile);
    XmlNamespaceManager nsm = new XmlNamespaceManager(xmldoc.NameTable);
    nsm.AddNamespace("i", "urn:ebay:apis:eBLBaseComponents");
    XmlNodeList node = xmldoc.SelectNodes("/i:GetCategoriesResponse/i:CategoryArray", nsm);

    XmlDocument xdoc1 = new XmlDocument();
    foreach (XmlNode xNodeI in node)
    {
        XmlNode newNode = xdoc1.ImportNode(xNodeI, true);
        xdoc1.AppendChild(newNode);
    }

    xmldoc = xdoc1;
    xmldoc.Save(path + @"\EbayCategories.xml");

0 个答案:

没有答案