Find Elements with an XPath Search

image_pdfimage_print


   
 

using System;
using System.Xml;

public class XPathSelectNodes {

    private static void Main() {

        // Load the document.
        XmlDocument doc = new XmlDocument();
        doc.Load("books.xml");

        XmlNodeList nodes = doc.SelectNodes("/books/A/B");
            
        foreach (XmlNode node in nodes) {
            Console.WriteLine(node.InnerText);
        }
    }
}
/*
<books>
  <A property="a">
    <B>text</B>
    <C>textg</C>
    <D>99999</D>
  </A>
</books>



*/
           
         
     


Get XML Nodes in a Specific XML Namespace

image_pdfimage_print
   
  

using System;
using System.Xml;

public class SelectNodesByNamespace {

    private static void Main() {

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

        XmlNodeList matches = doc.GetElementsByTagName("*","http://mycompany/OrderML");

        foreach (XmlNode node in matches) {

            Console.Write(node.Name + "	");
            foreach (XmlAttribute attribute in node.Attributes) {
                Console.Write(attribute.Value + "  ");
            }
        }
    }
}

   
     


Use Load method in XmlDocument to load xml document

image_pdfimage_print
   
  

//Order.xml
/*
<?xml version="1.0" ?>
<ord:order xmlns:ord="http://mycompany/OrderML"
  xmlns:cli="http://mycompany/ClientML">

    <cli:client>
        <cli:firstName>Sally</cli:firstName>
        <cli:lastName>Sergeyeva</cli:lastName>
    </cli:client>

    <ord:orderItem itemNumber="3211"/>
    <ord:orderItem itemNumber="1155"/>

</ord:order>
*/
using System;
using System.Xml;

class MainClass {
    public static void Main() {
        XmlDocument doc = new XmlDocument();
        doc.Load("Order.xml");

        XmlNodeList matches = doc.GetElementsByTagName("*", "http://mycompany/OrderML");

        foreach (XmlNode node in matches) {
            Console.Write(node.Name + "	");
            foreach (XmlAttribute attribute in node.Attributes) {
                Console.Write(attribute.Value + "  ");
            }
        }
    }
}

   
     


Call GetElementsByTagName to get an element

image_pdfimage_print
   
  

using System;
using System.Xml;

public class MainClass {
    private static void Main() {
        XmlDocument doc = new XmlDocument();
        doc.Load("ProductCatalog.xml");

        XmlNodeList prices = doc.GetElementsByTagName("productPrice");

        decimal totalPrice = 0;
        foreach (XmlNode price in prices) {
            totalPrice += Decimal.Parse(price.ChildNodes[0].Value);
        }

        Console.WriteLine("Total catalog value: " + totalPrice.ToString());
    }

}

   
     


Save, AppendChild, CreateXmlDeclaration, CreateElement

image_pdfimage_print
   
  
using System;
using System.Xml;

class MainClass {
    public static void Main() {
        XmlDocument doc = new XmlDocument();
        XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
        doc.AppendChild(docNode);

        XmlNode productsNode = doc.CreateElement("products");
        doc.AppendChild(productsNode);

        XmlNode productNode = doc.CreateElement("product");
        XmlAttribute productAttribute = doc.CreateAttribute("id");
        productAttribute.Value = "1";
        productNode.Attributes.Append(productAttribute);
        productsNode.AppendChild(productNode);

        XmlNode nameNode = doc.CreateElement("productName");
        nameNode.AppendChild(doc.CreateTextNode("Coffee"));
        productNode.AppendChild(nameNode);
        XmlNode priceNode = doc.CreateElement("productPrice");
        priceNode.AppendChild(doc.CreateTextNode("0.99"));
        productNode.AppendChild(priceNode);

        productNode = doc.CreateElement("product");
        productAttribute = doc.CreateAttribute("id");
        productAttribute.Value = "2";
        productNode.Attributes.Append(productAttribute);
        productsNode.AppendChild(productNode);
        nameNode = doc.CreateElement("productName");
        nameNode.AppendChild(doc.CreateTextNode("Tea Pot"));
        productNode.AppendChild(nameNode);
        priceNode = doc.CreateElement("productPrice");
        priceNode.AppendChild(doc.CreateTextNode("12.99"));
        productNode.AppendChild(priceNode);

        doc.Save(Console.Out);
    }
}

   
     


LoadXml

image_pdfimage_print
   
  

using System;
using System.IO;
using System.Xml;
public class BookListing {
    public static void Main() {
        XmlDocument doc = new XmlDocument();
        String entry = "<book genre=&#039;biography&#039;" +
         " ISBN=&#039;1111111111&#039;><title>my title</title>" +
         "</book>";
        doc.LoadXml(entry);

        StringWriter writer = new StringWriter();
        doc.Save(writer); // to StringWriter
        String strXML = writer.ToString(); // to String
        Console.WriteLine(strXML);
    }
}