0

Xamarin iOS iPad App에 대한 질문자 앱을 만들고 있습니다. 누군가가 앱을 열면 카테고리가 표시되고 카테고리에서 하위 카테고리가 열리 며 하위 카테고리에서는 질문 목록이 열립니다. 질문을 열면 선택 목록과 질문의 답을 추가하는 텍스트 상자가있는 세부 정보 페이지가 표시됩니다.XML에 값 저장 속성/XML 요소 질문자를위한 답변의 값

이제 문제는 세부 정보 페이지를 열어 특정 질문의 답을 저장할 때입니다. 목록에서 답변과 선택 사항을 해당 질문에 대한 XML 파일에 저장해야합니다.

어떻게 처리 할 수 ​​있습니까? 다음, 값을 저장하는 데 필요한 모든 필수 속성을 가진 클래스 파일을 확인하는 클래스의 속성 값을 설정하고 XML로 값 클래스 객체를 직렬화 :

<?xml version="1.0" encoding="utf-16"?> 
<Categories xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <SubCategories> 
    <Question QuestionTitle="I am question101" SubCategories="100" CategoryId="facilityId"> 
     <Checklists_Items Checklist_ItemTitle="title101" Checklist_ItemId="999" Checklist_ItemQuestion="question101" /> 
    </Question> 
    </SubCategories> 
</Categories> 
+0

사용 모델과 바인딩 –

답변

0

나는 다음을 수행하여이를 달성 직렬화 된 XML 문자열을 XML 파일에 씁니다.

다음은 객체 클래스의 샘플 코드입니다.

using System; 
using System.Collections.Generic; 
using System.Xml.Serialization; 

/// <remarks/> 
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")] 
[System.SerializableAttribute()] 
[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[XmlTypeAttribute(AnonymousType = true)] 
//[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)] 

public partial class QuestionsCollection 
{ 
    private string _Question; 
    private string _Answer; 

    public QuestionsCollection() 
    { 
    } 

    /// <remarks/> 
    [XmlAttributeAttribute()] 
    public string Question 
    { 
     get 
     { 
      return this._Question; 
     } 
     set 
     { 
      this._Question = value; 
     } 
    } 

    /// <remarks/> 
    [XmlArrayItemAttribute("Questions", IsNullable = false)] 
    public string Answer 
    { 
     get 
     { 
      return this._Answer; 
     } 
     set 
     { 
      this._Answer = value; 
     } 
    } 
} 

코드는 객체 클래스를 직렬화 :

string question = "This is first question?"; 
string answer = "Answer to first question"; 

var path1 = Path.Combine(Directory, _path); 
//Setting Values 
      var c = new QuestionsCollection { Question = question, Answer = answer }; 

//Serialization of Object Class.  
      var s = new XmlSerializer(typeof(QuestionsCollection)); 
      var sb = new StringBuilder(); 

      using (var writer = new StringWriter(sb)) 
      { 
       try 
       { 
        s.Serialize(writer, c); 
//Write Serialized String to file. 
        File.WriteAllText(path1, sb.ToString(), Encoding.UTF8); 

       } 
       catch (Exception e) 
       { 

       } 
      }