0

我正在创建一个 Xml XDocument。当我尝试插入一个包含字母、空格、特殊字符和数字的字符串时。它在运行时给出错误。

The ' ' character, hexadecimal value 0x20, cannot be included in a name.

我怎样才能插入这种类型的字符串。有没有其他方法可以插入这种类型的字符串。

我正在使用的代码:

XDocument xDoc = new XDocument(
                   new XDeclaration("1.0", "UTF-8", "yes"),
                   new XElement("Mail"));
var template = @"To MOM 
            13, AD1
            tr y
            fghdh, Madhya Pradesh, India 

            Dear Ram,
                  We would like to appoint you for new job";
XElement varXElement = new XElement("studentName", template);
xDoc.Element("Mail").Add(varXElement);
xDoc.Save(filePath);
4

3 回答 3

1

' ' 字符,十六进制值 0x20,不能包含在名称中。

正如错误所述,您不能在 xml 元素名称中放置空格。

更多信息可以在这里找到:

C# .Net 中 XmlElement 中的空格

我可以创建一个带有正斜杠作为名称一部分的元素吗

于 2013-09-02T10:01:39.203 回答
1

我不确定为什么它不适合你——下面的代码片段对我有用(需要以管理员身份运行 VS 才能保存到 C 的根目录:):

using System;
using System.Xml.Linq;

namespace ConsoleApplication4
{
    class Program
    {

        static void Main(string[] args)
        {

            XDocument xDoc = new XDocument(
                   new XDeclaration("1.0", "UTF-8", "yes"),
                   new XElement("Mail"));
            var template = @"To MOM 
            13, AD1
            tr y
            fghdh, Madhya Pradesh, India 

            Dear Ram,
                  We would like to appoint you for new job";
            XElement varXElement = new XElement("studentName", template);
            xDoc.Element("Mail").Add(varXElement);
            xDoc.Save("C:\\doc.xml");

            Console.ReadLine();
        }
    }
}

这将生成以下 XML:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Mail>
  <studentName>To MOM 
            13, AD1
            tr y
            fghdh, Madhya Pradesh, India 

            Dear Ram,
                  We would like to appoint you for new job</studentName>
</Mail>

这是在 Win7 64 位机器上使用 VS 2012 Premium。

于 2013-09-03T05:05:26.703 回答
1

如果你正在尝试做这样的事情

<some text some>ABAC</some text some>

然后它在xml语法中是非法的。如果你想实现这样的目标,那么你必须使用属性

<node name ="some text some">ABAC</node >

但是很难从你的问题中猜出你的问题是什么。

于 2013-09-02T10:01:25.003 回答