XML을 객체로 직렬화하려고하지만 XML을 올바르게 처리하지 못합니다. 개체에 작성자를 채우지는 않습니다. 제목과 저자 목록이 포함 된 기사로 구성된 객체를 반환하려고합니다. 작성자 목록은이 코드에 채워지지 않습니다. 이는 내 문제입니다. 이 XML 조작을 처음 접했을 때 제발 도와주세요.리스트를 사용하여 객체를 직렬화하는 XML
다음은 샘플 XML입니다.
<?xml version="1.0" encoding="UTF-8"?>
<MedlineCitationSet>
<Article>
<ArticleTitle>Title 1</ArticleTitle>
<AuthorList>
<Author>
<LastName>Public</LastName>
<ForeName>J Q</ForeName>
<Initials>JQ</Initials>
</Author>
<Author>
<LastName>Doe</LastName>
<ForeName>John</ForeName>
<Initials>J</Initials>
</Author>
</AuthorList>
</Article>
<Article>
<ArticleTitle>Title 2</ArticleTitle>
<AuthorList>
<Author>
<LastName>Doe</LastName>
<ForeName>John</ForeName>
<Initials>J</Initials>
</Author>
<Author>
<LastName>Doe</LastName>
<ForeName>Jane</ForeName>
<Initials>J</Initials>
</Author>
</AuthorList>
</Article>
<Article>
<ArticleTitle>Title 3</ArticleTitle>
<AuthorList>
<Author>
<LastName>Doe</LastName>
<ForeName>Jane</ForeName>
<Initials>J</Initials>
</Author>
<Author>
<LastName>Public</LastName>
<ForeName>J Q</ForeName>
<Initials>JQ</Initials>
</Author>
</AuthorList>
</Article>
<Article>
<ArticleTitle>Title 4</ArticleTitle>
<AuthorList>
<Author>
<LastName>Smith</LastName>
<ForeName>John</ForeName>
<Initials>J</Initials>
</Author>
<Author>
<LastName>Doe</LastName>
<ForeName>John</ForeName>
<Initials>J</Initials>
</Author>
</AuthorList>
</Article>
여기 내 클래스 계층 구조입니다.
[XmlRoot("MedlineCitationSet")]
public class MedlineCitationSet
{
[XmlElement("Article")]
public List<Article> Articles { get; set; }
}
[XmlRoot("Article")]
public class Article
{
[XmlElement("ArticleTitle")]
public string ArticleTitle { get; set; }
[XmlElement("AuthorList")]
public List<Author> AuthorList { get; set; }
}
public class Author
{
[XmlElement("LastName")]
public string LastName { get; set; }
[XmlElement("ForeName")]
public string ForeName { get; set; }
[XmlElement("Initials")]
public string Initials { get; set; }
}
그리고 여기 내 비 직렬화 코드가 있습니다.
XmlSerializer serializer = new XmlSerializer(typeof(MedlineCitationSet));
using (FileStream fileStream = new FileStream(newPath + @"\XmlToRead\XmlToRead.xml", FileMode.Open))
{
MedlineCitationSet result = (MedlineCitationSet)serializer.Deserialize(fileStream);
}
이것은 내 문제를 해결합니다. 개체 특성이 성공적으로 채워집니다. 고마워. –