Suggested Videos
Part 4 - Modifying xml document using linq to xml
Part 5 - Transforming XML to CSV using LINQ to XML
Part 6 - Transforming XML to HTML table using LINQ to XML
In Part 5, we discussed, tranforming XML to CSV
In Part 6, we discussed, tranforming XML to HTML
In this video, we will discuss transforming one XML format to another XML format
We want to tranform the following XML format to a different format
The tranformed XML format should be as shown below.
Code to transform XML to a different format
LINQ to XML tutorial
Part 4 - Modifying xml document using linq to xml
Part 5 - Transforming XML to CSV using LINQ to XML
Part 6 - Transforming XML to HTML table using LINQ to XML
In Part 5, we discussed, tranforming XML to CSV
In Part 6, we discussed, tranforming XML to HTML
In this video, we will discuss transforming one XML format to another XML format
We want to tranform the following XML format to a different format
<?xmlversion="1.0"encoding="utf-8"?>
<Students>
<StudentCountry="USA">
<Name>Mark</Name>
<Gender>Male</Gender>
<TotalMarks>800</TotalMarks>
</Student>
<StudentCountry="USA">
<Name>Rosy</Name>
<Gender>Female</Gender>
<TotalMarks>900</TotalMarks>
</Student>
<StudentCountry="India">
<Name>Pam</Name>
<Gender>Female</Gender>
<TotalMarks>850</TotalMarks>
</Student>
<StudentCountry="India">
<Name>John</Name>
<Gender>Male</Gender>
<TotalMarks>950</TotalMarks>
</Student>
</Students>
The tranformed XML format should be as shown below.
<?xmlversion="1.0"encoding="utf-8"?>
<Students>
<USA>
<Student>
<Name>Mark</Name>
<Gender>Male</Gender>
<TotalMarks>800</TotalMarks>
</Student>
<Student>
<Name>Rosy</Name>
<Gender>Female</Gender>
<TotalMarks>900</TotalMarks>
</Student>
</USA>
<India>
<Student>
<Name>Pam</Name>
<Gender>Female</Gender>
<TotalMarks>850</TotalMarks>
</Student>
<Student>
<Name>John</Name>
<Gender>Male</Gender>
<TotalMarks>950</TotalMarks>
</Student>
</India>
</Students>
Code to transform XML to a different format
XDocumentxmlDocument = XDocument.Load(@"C:\Demo\Demo\Data.xml");
XDocument result = new XDocument(
new XElement("Students",
new XElement("USA",
from s in
xmlDocument.Descendants("Student")
where s.Attribute("Country").Value == "USA"
select new XElement("Student",
new XElement("Name", s.Element("Name").Value),
new XElement("Gender", s.Element("Gender").Value),
new XElement("TotalMarks", s.Element("TotalMarks").Value))),
new XElement("India",
from s in
xmlDocument.Descendants("Student")
where s.Attribute("Country").Value
== "India"
select new XElement("Student",
new XElement("Name", s.Element("Name").Value),
new XElement("Gender", s.Element("Gender").Value),
new XElement("TotalMarks", s.Element("TotalMarks").Value)))));
result.Save(@"C:\Demo\Demo\Result.xml");
LINQ to XML tutorial
1 comment:
Thank You Sir..:) Your videos are really helpful and crisp clear..:) I recommend your videos to almost everyone I know who is eager to learn .Net!
Reply DeleteI have re-written this example without hard-coding. All thanks to you..:)
XDocument newDoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"),
new XComment("XML Doc without Hard-Coding"),
new XElement("Students",
from stu in students
group stu by stu.Element("Country").Value into g
select new XElement(g.Key,
(from gx in g
select new XElement("Student",
new XElement("Id", gx.Attribute("Id").Value),
new XElement("Name", gx.Element("Name").Value),
new XElement("Gender", gx.Element("Gender").Value),
new XElement("TotalMarks", gx.Element("TotalMarks").Value))))));
Thanks once again.
It would be great if you can help share these free resources
[フレーム]