【问题标题】:How to change XML Node name in C#如何在 C# 中更改 XML 节点名称
【发布时间】:2014-10-09 12:20:36
【问题描述】:

我想在 C# 中更改 XML 节点名称, 我的代码是,

string filepath = @"C:\JobDocuments\jobsxml.xml";
     XDocument doc = XDocument.Load(filepath);
     doc.Nodes.Name = "jobs";
     doc.Save(filepath);

我的 XML 文件是,

<jobs>
-<Table>
  <title><![CDATA[ Country ]]></title> 
  <category><![CDATA[ Site Engineering / Project Management ]]></category> 
  <description><![CDATA[ sades ]]></description> 
  </Table>
</jobs>

我想要输出如下,

 <jobs>
      <job>
      <title><![CDATA[ Country ]]></title> 
      <category><![CDATA[ Site Engineering / Project Management ]]></category> 
      <description><![CDATA[ sades ]]></description> 
      </job>
 </jobs>

在这里我想显示&lt;job&gt; 而不是-&lt;Table&gt;。我在 Query 中进行了更改,但没有给出正确的顺序。

  SELECT '<![CDATA[ ' + JobTitle + ' ]]>' as title,
               '<![CDATA[ ' + JobCategory + ' ]]>' as category,
               '<![CDATA[ ' + JobDescription + ' ]]>' as [description]
        from Jobs FOR XML PATH('job')

请帮帮我。 谢谢

【问题讨论】:

  • 基本上你想换工作表?更改jobsxml.xml 的问题在哪里?这是因为是从另一个来源创建的?
  • 我在你最后一个问题中写给你怎么做,看来你不这样做......

标签: c# sql-server xml


【解决方案1】:

你可以试试这个吗?

String sampleXml = "<jobs><Table><title><![CDATA[ Country ]]></title> <category><![CDATA[ Site Engineering / Project Management ]]></category> <description><![CDATA[ sades ]]></description> </Table></jobs>";

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(sampleXml);

            XmlNode rootE = xmlDoc.GetElementsByTagName("jobs")[0];
            XmlNode oldE = rootE.SelectSingleNode("Table");
            XmlNode newE = xmlDoc.CreateElement("job");
            rootE.ReplaceChild(newE, oldE);
            while (oldE.ChildNodes.Count != 0)
            {
                newE.AppendChild(oldE.ChildNodes[0]);
            }
            while (oldE.Attributes.Count != 0)
            {
                newE.Attributes.Append(oldE.Attributes[0]);
            }

【讨论】:

  • 注意这一点:好的解决方案是更改 xml 本身而不是使用逻辑来执行它...
  • 谢谢@mpacheco,我收到错误'根级别的数据无效。第 1 行,位置 1。'
  • 我看到 附近有一个连字符,在您的文件中吗?
  • 你不能只更改 XML 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-20
  • 2013-01-31
  • 2011-05-09
  • 2018-02-10
相关资源
最近更新 更多