Using XmlDocument to Retrieve values in c#

后端 未结 2 558
灰色年华
灰色年华 2021-01-13 18:14

I am using XmlDocument() for parsing a file like **.opf ** for my application of EpubReader.



        
相关标签:
2条回答
  • 2021-01-13 18:54

    Following code loads and parses content.opf file without any error.

    To iterate and compare above xml you may use following code:

    try
    {
        XmlDocument xDoc = new XmlDocument();
        xDoc.Load("content.opf");
    
        XmlNodeList items = xDoc.GetElementsByTagName("item");
        foreach (XmlNode xItem in items)
        {
            string id = xItem.Attributes["id"].Value;
            string href= xItem.Attributes["href"].Value;
        }
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.WriteLine(ex.Message);
    }
    
    0 讨论(0)
  • 2021-01-13 19:00

    You may start with the following code. When I execute it, I get proper output:

    string str = @"<?xml version='1.0' encoding='UTF-8'?><root><items><item id='W01MB154' href='01MB154.html' media-type='application/xhtml+xml' /><item id='W000Title' href='000Title.html' media-type='application/xhtml+xml' /></items><itemrefs><itemref idref='W000Title' /><itemref idref='W01MB154' /></itemrefs></root>";
    XmlDocument xml = new XmlDocument();
    xml.LoadXml(str);  // suppose that str string contains the XML data. You may load XML data from a file too.
    
    XmlNodeList itemRefList = xml.GetElementsByTagName("itemref");
    foreach (XmlNode xn in itemRefList)
    {
        XmlNodeList itemList = xml.SelectNodes("//root/items/item[@id='" + xn.Attributes["idref"].Value + "']");
        Console.WriteLine(itemList[0].Attributes["href"].Value);
    }
    

    Output:

    000Title.html

    01MB154.html

    The XML used is:

    <?xml version='1.0' encoding='UTF-8'?>
    <root>
        <items>
            <item id='W01MB154' href='01MB154.html' media-type='application/xhtml+xml' />
            <item id='W000Title' href='000Title.html' media-type='application/xhtml+xml' />
        </items>
        <itemrefs>
            <itemref idref='W000Title' />
            <itemref idref='W01MB154' />
        </itemrefs>
    </root>
    

    Check the structure of the XML document and the XPath expression.

    0 讨论(0)
提交回复
热议问题