【问题标题】:How to add attributes to xml using XmlDocument in c# .net CF 3.5如何在 c# .net CF 3.5 中使用 XmlDocument 向 xml 添加属性
【发布时间】:2011-03-25 05:35:56
【问题描述】:

我需要为元素“aaa”创建一个带有前缀“xx”的属性“abc”。以下代码添加了前缀,但它也将 namespaceUri 添加到元素。

所需输出:

<mybody>
<aaa xx:abc="ddd"/>
<mybody/>

我的代码:

  XmlNode node = doc.SelectSingleNode("//mybody");
  XmlElement ele = doc.CreateElement("aaa");

  XmlAttribute newAttribute = doc.CreateAttribute("xx","abc",namespace);              
  newAttribute.Value = "ddd";

  ele.Attributes.Append(newAttribute);

  node.InsertBefore(ele, node.LastChild);

以上代码生成:

<mybody>
<aaa xx:abc="ddd" xmlns:xx="http://www.w3.org/1999/XSL/Transform"/>
<mybody/>

想要的输出是

<mybody>
<aaa xx:abc="ddd"/>
<mybody/>

并且“xx”属性的声明应该在根节点中完成,如:

<ns:somexml xx:xsi="http://www.w3.org/1999/XSL/Transform"  xmlns:ns="http://x.y.z.com/Protocol/v1.0">

如果以 deisred 格式获得输出,如何获得?如果 xml 不是这种所需的格式,则无法再对其进行处理..

谁能帮忙?

谢谢, 维姬

【问题讨论】:

    标签: c# .net xml windows-mobile xsd


    【解决方案1】:

    我相信这只是直接在根节点上设置相关属性的问题。这是一个示例程序:

    using System;
    using System.Globalization;
    using System.Xml;
    
    class Test
    {
        static void Main()
        {
            XmlDocument doc = new XmlDocument();
            XmlElement root = doc.CreateElement("root");
    
            string ns = "http://sample/namespace";
            XmlAttribute nsAttribute = doc.CreateAttribute("xmlns", "xx",
                "http://www.w3.org/2000/xmlns/");
            nsAttribute.Value = ns;
            root.Attributes.Append(nsAttribute);
    
            doc.AppendChild(root);
            XmlElement child = doc.CreateElement("child");
            root.AppendChild(child);
            XmlAttribute newAttribute = doc.CreateAttribute("xx","abc", ns);
            newAttribute.Value = "ddd";        
            child.Attributes.Append(newAttribute);
    
            doc.Save(Console.Out);
        }
    }
    

    输出:

    <?xml version="1.0" encoding="ibm850"?>
    <root xmlns:xx="http://sample/namespace">
      <child xx:abc="ddd" />
    </root>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-20
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 2010-10-18
      相关资源
      最近更新 更多