2014-11-03 3 views
0

Я хотел бы спросить что-нибудь о файлах XML. У меня есть Silverlight для Windows Phone приложение, созданное в Visual Studio 2010, .NET Framework 4. Я беру из Интернета XML-файл, анализируя его значения, чтобы проверить, существует ли имя пользователя. XML файл:написать на xml в windows phone silverlight 7

<?xml version="1.0" encoding="utf-8"?> 
<rss version='2.0'> 
<channel> 
    <item> 
     <username>name1</username> 
     <score>0</score> 
    </item> 
    <item> 
     <username>name2</username> 
     <score>0</score> 
    </item> 
</channel> 
</rss> 

и вызвать функцию (если имя пользователя не существует), который является:

public void AddUser()//Stream stream) 
     { 
      string stream = "http://localhost:8080/scores.xml"; 
      var builder = new StringBuilder(); 
      //add user to xml 
      //XmlWriterSettings settings = new XmlWriterSettings(); 
      var settings = new XmlWriterSettings { OmitXmlDeclaration = true }; 
      using (var SourceStream = XmlWriter.Create(builder, settings)) 
      { 
       //settings.Async = true; 
       XmlWriter writer = XmlWriter.Create(SourceStream); 
       writer.WriteStartElement(stream); 
       writer.WriteStartElement("channel"); 
       writer.WriteStartElement("item"); 
       writer.WriteElementString("username", IsolatedStorageSettings.ApplicationSettings["username"].ToString()); 
       writer.WriteElementString("score", "0"); 
       writer.WriteEndElement(); 
       writer.WriteEndElement();  
      } 
     } 

Итак, что я хочу сделать, это добавить новый человек в этом XML-файле. Например:

<item> 
<username>name3</username> 
<score>0</score> 
</item> 

Кроме того, если я запускаю этот код, я получаю сообщение об ошибке, говорящее:

"Invalid name character in 'http://localhost:8080/scores.xml'. The ':' character, hexadecimal value 0x3A, cannot be included in a name" 

Я не знаю, что делать с этой ошибкой, и если это единственная ошибка ... Я не уверен, что я точно понимаю, как работает XML здесь, может ли кто-нибудь дать мне несколько советов или указаний для этого?

благодарит заранее!

ответ

0

Ваша ошибка в

writer.WriteStartElement(stream); 

Ури корма не является допустимым именем элемента, я полагаю, вы имели в виду, чтобы написать

writer.WriteStartElement("rss"); 

Кроме того, я считаю, что легче просто использовать Linq к xml, гораздо легче манипулировать, но это только мои предпочтения.

+0

Я изменил поток на «rss», но ничего не произошло в моем XML-файле. Мой XML-файл будет храниться на сервере. Прочтите файл, отредактируйте и сохраните его на сервере! Теперь я работаю над этим локально, используя xampp, чтобы проверить его в первую очередь. Должен ли я увидеть некоторые изменения, выполнив «rss»? –

+0

Я думаю, что вам нужно переосмыслить свой подход. если я не ошибаюсь, вы хотите загрузить xml-файл из удаленного места, добавить в xml-файл и затем сохранить файл в том же удаленном месте? – FunksMaName

+0

Да, это так! Я загружаю xml-файл, чтобы узнать, используется ли уже имя пользователя. Если нет, я хочу добавить в xml-файл и сохранить файл в том же месте расположения хранилища! благодаря !!! –

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