Поиск в xml и выбор родительского узла - C#

Узнай цену своей работы

Формулировка задачи:

как можно в c# сделать, что бы искал по всему документу в элементе "url" например "http://ssilka3.ru" и если нашёл, то брал все данные в этом элементе "offers" и сохранял в другом документе?
<?xml version="1.0" encoding="utf-8"?>
       <!DOCTYPE yml_catalog SYSTEM "shops.dtd">
       <yml_catalog date="2016-01-29 20:20">
        <shop>
       <name></name>
       <url>http://</url>
       <currencies>
<offers>
<offer id="14264216697225531000" available="true" merchant_id="61108" gs_product_key="a4fc22b52dc5a913dd5dcf7de0e3e55adce74e1c" article="9382" gs_category_id="591">
 <name><![CDATA[Philips-Avent1 SCF284/03]]></name>
 <description><![CDATA[текст]]></description>
 <vendor><![CDATA[Philips-]]></vendor>
 <model><![CDATA[текст]]></model>
<oldprice></oldprice>
 <url>http://ssilka1.ru</url>
 <currencyId>RUR</currencyId>
 <categoryId>167</categoryId>
 <price>7900.00</price>
</offer>
<offer id="11831111219399895000" available="true" merchant_id="61108" gs_product_key="b405fd1804beee2b877a7cdf4d558c842a0d8167" article="21298" gs_category_id="591">
 <name><![CDATA[MAM текст]]></name>
 <description><![CDATA[текст]]></description>
 <vendor><![CDATA[MAM]]></vendor>
 <model><![CDATA[текст]]></model>
<oldprice></oldprice>
 <url>http://ssilka2.ru</url>
 <currencyId>RUR</currencyId>
 <categoryId>326</categoryId>
 <price>2090.00</price>
</offer>
<offer id="14099211609595558000" available="true" merchant_id="61108" gs_product_key="e0e9ed249eae9342ae3420902ecc2cff94590da8" article="14977" gs_category_id="591">
 <name><![CDATA[Philips-Avent Теплоизолирующая сумка SCD150]]></name>
 <description><![CDATA[текст]]></description>
 <vendor><![CDATA[Philips-Avent]]></vendor>
 <model><![CDATA[SCD150]]></model>
<oldprice></oldprice>
 <url>http://ssilka3.ru</url>
 <currencyId>RUR</currencyId>
 <categoryId>352</categoryId>
 <price>1610.00</price>
</offer>

Решение задачи: «Поиск в xml и выбор родительского узла»

textual
Листинг программы
    public class Program
    {
        private static void Main(string[] args)
        {
            Program p = new Program();
            p.Run();
 
            Console.WriteLine("\nDone");
            Console.ReadKey();
        }
 
        private void Run()
        {
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(Resource1.XML_Document);
 
            XmlElement root = doc.DocumentElement;
 
            XmlNodeList nodes = root.SelectNodes("offer[url="http://ssilka3.ru"]");
 
            Console.WriteLine("Found: " + nodes.Count);
 
            foreach (XmlElement node in nodes)
            {
                Console.WriteLine(node.InnerXml);
            }
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5