Получить XPath XML-элемента, используя его значение - PullRequest
0 голосов
/ 24 марта 2010

Мой XmlFile выглядит следующим образом:

<?xml version="1.0"?> <document-inquiry> <publication-reference data-format="docdb" xmlns="http://www.epo.org/exchange"> <document-id> <country>EP</country> <doc-number>2160088</doc-number> <kind>A1</kind> </document-id> </publication-reference><br> </document-inquiry>

Для вышеупомянутого xml мне нужно получить xpath определенного элемента, например, например, «элемент страны», как

Мой вывод: "/ запрос документа / ссылка на публикацию / идентификатор документа / страна"

Мой ввод: используя его значение "EP"

Это код, который я пробовал

doc.SelectSingleNode("/document-inquiry/publication-reference/document-id[text()='EP']");

Я получаю null для приведенного выше кода.

Я должен получить его, используя код c #.Может кто-нибудь, пожалуйста, помогите мне в этом

1 Ответ

1 голос
/ 24 марта 2010
using System;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
using System.Xml.XPath;

class Program
{
    static void Main()
    {
        var doc = XDocument.Load("D:\\xml\\neo.xml");
        var ns = new XmlNamespaceManager(new NameTable());
        ns.AddNamespace("ns", "http://www.epo.org/exchange");
        var elem = XDocument.Load("D:\\xml\\neo.xml")
            .XPathSelectElement("//ns:document-id[ns:doc-number='1000']", ns);
        if (elem != null)
        {
            Console.WriteLine(elem.ToString());
            Console.ReadLine();
        }
    }
}

Это прекрасно работает для меня.

...