2014-11-03 5 views
0

XML 파일에 대해 질문하고 싶습니다. Visual Studio 2010, .NET Framework 4에서 만든 Windows Phone 앱용 실버 라이트가 있습니다. 사용자 이름이 있는지 확인하기 위해 XML 파일에서 값을 파싱하는 인터넷 파일을 인터넷에서 가져옵니다. XML 파일은 다음과 같습니다Windows Phone Silverlight에서 XML로 작성하기

<?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> 

및 (사용자 이름하지 않는 존재하는 경우) 인 함수를 호출 :이 XML 파일에 새로운 사람을 추가 할 일은 원하는 그래서

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();  
      } 
     } 

. 예를 들어 :이 코드를 실행하면

<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을 사용하여 로컬로 테스트하고 있습니다. "rss"를 수행하여 몇 가지 변경 사항을 볼 수 있습니까? –

+0

나는 당신이 당신의 접근 방식을 다시 생각할 필요가 있다고 생각한다. 내가 잘못 본 것이 아니라면 원격 위치에서 xml 파일을로드하고 xml 파일에 추가 한 다음 동일한 원격 위치에 파일을 저장 하시겠습니까? – FunksMaName

+0

네, 맞습니다! xml 파일을로드하여 사용자 이름이 이미 사용 중인지 확인합니다. 그렇지 않다면 xml 파일에 추가하고 같은 remore 위치에 파일을 저장하고 싶습니다! 감사 !!! –