【问题标题】:Convert XML document attributes into new XML document with only those attributes将 XML 文档属性转换为仅具有这些属性的新 XML 文档
【发布时间】:2018-12-04 19:11:20
【问题描述】:

我遇到了一些问题,我需要将 XML 文档属性转换为仅具有这些属性的新 XML 文档。

我尝试了不同的东西,我想出了

Console.WriteLine(attrVal) 

我将这些属性放入控制台,但我需要将它们写入 XML。

所以我的代码是:

using System;
using System.Text;
using System.Xml;

namespace MResourceWriter
{
    class Program
    {
        static void Main(string[] args)
        {
        XmlDocument xml = new XmlDocument();
        xml.Load(@"myfile.resx");

        XmlNodeList elemList = xml.GetElementsByTagName("data");
        for (int i = 0; i < elemList.Count; i++)
        {
            string attrVal = elemList[i].Attributes["name"].Value;
            Console.WriteLine(attrVal);
        }

       }
    }
}

我有这个输入 - 所以属性到控制台

我想在全新的 XML 文档中转换这些值。

【问题讨论】:

  • 欢迎来到 Stack Overflow。目前恐怕你的问题还不清楚——你已经提供了一些代码,但你还没有告诉我们它在什么方面不起作用。如果您提供输入文档和预期输出文档的示例,这将非常有帮助。顺便说一句,我还强烈建议使用 LINQ to XML API 而不是旧的 XmlDocument API - LINQ to XML 更容易阅读。我还建议在内存中构建输出文档,而不是使用 XmlTextWriter - 同样,它会导致更简单的代码。
  • 非常感谢乔恩。代码通过这一行将所有属性写入控制台 Console.WriteLine(attrVal); ,并且我想摆脱那条线并将这些结果移动到一个单独的 XML 文档中,其中只有这些结果。
  • 好的,所以大概您只需要拨打writer 而不是拨打Console.WrirteLine。您是否查看过writer 上可用的方法? (正如我所说,无论如何我都不会这样做,但是......)
  • 你能告诉我们你有什么和你需要什么结果吗?
  • 在这里,Gauravsa 还推荐 Linq to XML 方法以获取更多信息,所以我想走那条路。也非常感谢您的推荐。

标签: c# .net xml


【解决方案1】:

你可以使用Linq to XML

XElement dataValues = XElement.Load($"{fileName}");

IEnumerable<XElement> names =  from item in dataValues.Descendants("data")  
                                 select item.Element("name");

然后您可以创建 XML 树。代码如下所示:

XElement xmlfromlist = new XElement("Root",
                                 from a in dataValues.Descendants("data")  
                                 select
                                   new XElement("Name", a.Element("name"));

【讨论】:

  • 现在,我有一个名为 SomeFile.xml 的全新文件,我想将这些值放入该文件中。我会研究 Linq to XML,谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 2018-06-14
  • 1970-01-01
  • 2014-09-20
相关资源
最近更新 更多