2013-09-02 3 views
0

Я создаю Xml Document 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); 
+2

показать нам свой код, который вы используете –

+0

Ваш фрагмент кода не будет компилироваться. Я изменил первую строку на «XDocument xDoc = ...» и изменил строки «varXElement» на «var XElement = new XElement (« studentNAme », template);» и «xDoc.Element (« Mail »). (varXElement); 'и он работал просто отлично, так что происходит что-то еще. – Tim

+1

Я боюсь, но я все еще не могу запустить его. Он будет компилироваться должным образом, но если вы попытаетесь сохранить его, указав filepath = "C: \\ doc.xml", он даст вам исключение пробельных символов. –

ответ

1

Если вы пытаетесь сделать что-то вроде этого

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

Тогда его незаконным в XML-грамматике. Если вы хотите, чтобы достичь чего-то вроде этого, то вы должны использовать атрибуты

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

Но это очень трудно догадаться, из вашего вопроса, что это ваша проблема.

+0

Thanx для всех ваших ответов, но я узнал, что делаю ту же глупую ошибку, которую @Anand сказал выше. –

1

Символ ', шестнадцатеричное значение 0x20, не может быть включен в имя.

Как указано в ошибке, вы не можете поместить пробел в имя элемента xml.

подробнее можно найти здесь:

White space in XmlElement in C# .Net

Can I create an element with forward slash as part of the name

+1

Итак, как я могу добавить что-то подобное в XML, есть ли способ сделать это. –

+0

имена могут не содержать пробелов. вы можете использовать символы подчеркивания или somthing. –

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> 

Это было с VS 2012 Premium на 64-разрядной машине Win7.

Смежные вопросы