首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用XmlDocument创建XML文档?

如何使用XmlDocument创建XML文档?
EN

Stack Overflow用户
提问于 2012-07-15 22:27:56
回答 1查看 237.1K关注 0票数 89

如何创建这样的XML文档?

代码语言:javascript
复制
<body>
  <level1>
    <level2>text</level2>
    <level2>other text</level2>
  </level1>
</body>

在C#中使用XmlDocument

EN

回答 1

Stack Overflow用户

发布于 2020-02-26 19:18:19

上面使用字典的->level2来自于我的例子中的字典(以防万一有人会发现它很有用)尝试第一个例子时,我偶然发现了这个错误:“这个文档已经有一个'DocumentElement‘节点。”我受到了here这个答案的启发

并编辑了我的代码:(xmlDoc.DocumentElement.AppendChild(body))

代码语言:javascript
复制
//a dictionary:
Dictionary<string, string> Level2Data 
{
    {"level2", "text"},
    {"level2", "other text"},
    {"same_level2", "more text"}
}
//xml Decalration:
XmlDocument xmlDoc = new XmlDocument();
XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
XmlElement root = xmlDoc.DocumentElement;
xmlDoc.InsertBefore(xmlDeclaration, root);
// add body
XmlElement body = xmlDoc.CreateElement(string.Empty, "body", string.Empty);
xmlDoc.AppendChild(body);
XmlElement body = xmlDoc.CreateElement(string.Empty, "body", string.Empty);
xmlDoc.DocumentElement.AppendChild(body); //without DocumentElement ->ERR



foreach (KeyValuePair<string, string> entry in Level2Data)
{
    //write to xml: - it works version 1.
    XmlNode keyNode = xmlDoc.CreateElement(entry.Key); //open TAB
    keyNode.InnerText = entry.Value;
    body.AppendChild(keyNode); //close TAB

    //Write to xmml verdion 2: (uncomment the next 4 lines and comment the above 3 - version 1
    //XmlElement key = xmlDoc.CreateElement(string.Empty, entry.Key, string.Empty);
    //XmlText value = xmlDoc.CreateTextNode(entry.Value);
    //key.AppendChild(value);
    //body.AppendChild(key);
}

两个版本( foreach循环中的1和2)都给出了输出:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<body>
    <level1>
        <level2>text</level2>
        <level2>ther text</level2>
         <same_level2>more text</same_level2>
    </level1>
</body>

(注意:字典中的第三行"same level2“也可以是level2,但我想说明字典的优点-在我的例子中,我需要不同名称的level2。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11492705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档