닷넷/C#

C# XML 파일 읽기/쓰기

FreeBear 2023. 3. 28. 16:42
반응형

C#에서 XML 파일을 읽고 쓰는 방법은 여러 가지가 있습니다.

다음은 각 방법과 코드 예시입니다.

 

1. XmlReader를 사용하여 XML 파일을 읽고 쓰는 방법

1) XML 파일 읽기

(1) XmlReader를 사용하여 XML 파일을 읽습니다.

using System.Xml;

XmlReader xmlReader = XmlReader.Create("file.xml");

 

 

(2) XmlReader에서 필요한 데이터를 읽습니다.

while (xmlReader.Read())
{
    if (xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == "node")
    {
        // Do something with the data
    }
}

 

(3) XMLReader를 닫습니다.

xmlReader.Close();
 

 

2) XML 파일 쓰기

(1) XmlWriter를 사용하여 XML 파일을 생성합니다.

using System.Xml; 

XmlWriter xmlWriter = XmlWriter.Create("file.xml");

 

(2) XmlWriter에 데이터를 작성합니다.

xmlWriter.WriteStartElement("root");

xmlWriter.WriteStartElement("node");
xmlWriter.WriteString("Data");
xmlWriter.WriteEndElement();

xmlWriter.WriteEndElement();

 

(3) XmlWriter를 닫습니다.

xmlWriter.Close();

 

 

2. LINQ to XML을 사용하여 XML 파일을 읽고 쓰는 방법

1) XML 파일 읽기

(1) XDocument.Load()를 사용하여 XML 파일을 로드합니다.

using System.Xml.Linq;

XDocument doc = XDocument.Load("file.xml");

 

(2) LINQ 쿼리를 사용하여 읽으려는 XML 데이터를 쿼리합니다.

IEnumerable<XElement> nodes = from node in doc.Descendants("node")
                              where (string)node.Attribute("id") == "1"
                              select node;

 

 

(3) 이후 데이터를 사용합니다.

 

2) XML 파일 쓰기

(1) XElement를 사용하여 XML 문서를 작성합니다.

XElement root = new XElement("root",
    new XElement("node",
        new XAttribute("id", "1"),
        "Data"
    )
);

 

(2) XDocument 객체를 만들고, XElement를 추가합니다.

XDocument doc = new XDocument(root);

 

(3) XDocument.Save()를 사용하여 XML 파일을 저장합니다.

doc.Save("file.xml");

 

 

3. XmlDocument를 사용하여 XML 파일을 읽고 쓰는 방법

1) XML 파일 읽기

(1) XmlDocument.Load()를 사용하여 XML 파일을 로드합니다.

using System.Xml;

XmlDocument doc = new XmlDocument();
doc.Load("file.xml");
 

(2) XmlNode.SelectNodes() 또는 XmlNode.SelectSingleNode()를 사용하여 XML 데이터를 선택합니다.

XmlNodeList nodes = doc.SelectNodes("//node[@id='1']");

 

(3) 이후 읽은 데이터를 사용합니다.

 

2) XML 파일 쓰기

(1) XmlDocument.CreateElement() 및 XmlDocument.CreateTextNode() 등의 메서드를 사용하여 XML 요소 및 노드를 만듭니다.

XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("root");
XmlElement node = doc.CreateElement("node");
XmlAttribute idAttribute = doc.CreateAttribute("id");
idAttribute.Value = "1";
node.Attributes.Append(idAttribute);
node.AppendChild(doc.CreateTextNode("Data"));
root.AppendChild(node);
doc.AppendChild(root);

 

(2) XmlDocument.Save()를 사용하여 XML 파일을 저장합니다.

doc.Save("file.xml");
반응형