2014-11-03 67 views
0

我想问一些关于XML文件的问题。 我在Visual Studio 2010,.NET Framework 4中创建了windows phone应用程序的silverlight。我从互联网上获取解析其值的XML文件,以检查用户名是否存在。 XML文件是:在windows phone上写xml 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); 

饲料的URI不是有效的元素名称,我想你的意思是写

writer.WriteStartElement("rss"); 

而且,我发现很容易只使用Linq到xml,更容易操作,但这只是我的偏好。

+0

我将流更改为“rss”,但在我的XML文件中没有发生任何事情。我的XML文件将被存储到服务器。阅读文件,编辑并存储回服务器!现在我正在使用xampp在本地使用xampp来测试它。我是否应该通过执行“rss”来查看一些更改? – 2014-11-03 15:08:56

+0

我认为你需要重新考虑你的方法。如果我没有弄错,你希望从远程位置加载一个XML文件,添加到XML文件,然后将文件保存到同一个远程位置? – FunksMaName 2014-11-03 15:19:38

+0

是的,没错!我加载xml文件以查看用户名是否已被使用。如果没有,我想添加到xml文件并将文件保存到同一个remore位置!谢谢 !!! – 2014-11-03 15:31:16