닷넷/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");
반응형