2011-09-05 4 views
0

사용자 이름과 번호를 입력하는 사용자 입력 화면이 있습니다. 예상 된 출력 XML은C# XML 목록 <int>

<Names> 
    <Name>XYX</Name> 
    <Asso> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
    </Asso> 
</Names> 

많은 <Name> 태그가 있습니다. 클래스의 11 예를 들어, 말 Name[] instance = new Name[10];를 선언하면서 나는

public class Name{public string Name;public list<int> Num;} 

같은 값을 저장하는 클래스를 만들었습니다. 이름뿐만 아니라 Num 값으로 인스턴스 [0], 인스턴스 [1]의 값을 설정합니다. 내가 XML 파일을 작성하기위한

foreach (Name allintance in instance)를 사용하는 동안, XML을 출력 할 때 반면

. Name 값이 제대로 표시되지만 Num 값은 쓰여지지 않습니다 (빈 태그 만 해당).

친절하게 문제가 무엇인지 알려주세요. 더 나은 접근 방식이 어디에 있는지 알려주세요.

@Added 정보 클래스

public class Name { 
    public Name() 
    { 
     Num = new List<int>(); 
    } 
    public string Name { get; set; } 
    public List<int> Num { get; set; } 
} 

파일 및 할당 값에 대한 코드는

     instance[0] = new Name(); 
        instance[0].Name = textbox_Name.Text.ToString(); 
        instance[0].Num = NumList; 

내가 List<int>로 NumList을 정의하고 내가 양식에서 얻은 INT 값을 추가 한 것입니다.

그리고 XML 파일 내가 XmlWriter를 사용하고 위에서 언급 한 태그로 각각의 이름과도 관련 민 값을 추가

을 작성. 이 문제는 XML 태그의 Name 항목을 가져올 수 있습니다. 그러나 Num 태그는 빈 태그를 생성합니다.

+1

문제가 무엇 :

[Serializable] public class Name { public Name() { Num=new List<int>(); } [XmlAttribute("Name")] public string Name{get;set;} [XmlArray("Num")] public List<int> Num{get;set;} } 

는 XML을 생성하기 위해? 그것은 불분명하다. – BrokenGlass

+0

XML을 얻는 방법을 말하는 것은 아니지만 xml serialization을 사용하고 있다고 가정합니다. – TheVillageIdiot

+0

필자는 직렬화를 사용하지 않고있다. XMLwriter와 클래스 인스턴스의 값을 덤프하려고한다. – Mullaly

답변

1

이 시도 :

private void GetXML(Name n) 
{ 
    var xmlsr=new XmlSerialize(typeof(Name)); 
    var ms=new MemoryStream(); 
    var tr = new XmlTextWriter(ms,Encoding.Unicode); 
    xmlsr.Serialize(tr,n); 
    var sb=new StringBuilder(Encoding.Unicode.GetString(ms.ToArray())); 
    Console.WriteLine(sb.ToString());//xml for object n 
} 
+0

답변을 주셔서 감사합니다.하지만 불행히도 나는 이와 같은 것을 원했습니다. 사용자는 텍스트 상자에 "이름"을 입력하고 각 이름에 적절한 Num 항목을 입력하십시오. Num 항목은 텍스트 상자에도 채워집니다. 이제 규칙은 "이름"만큼 많은 항목이 있지만 총 Num 항목 (각 "Name"에 대한 Num 항목 추가)은 64 여야합니다.이 때문에 생성하기 전에 모든 Name 항목의 유효성을 검사해야합니다 XML 태그 – Mullaly