爲什麼將xml根包含在xpath中時我得不到任何結果。爲什麼包含xml根作爲xpath的一部分我得不到結果
我用一個簡單的XPath "/rdf:RDF/channel"
上的XElement(見下文)
,我將所有的命名空間XmlNamespaceManager
,但我得到沒有結果,它就像xpathNavigator
已經在根這樣它預計的路徑始於/channel
。
代碼:將XML的
const string rdfFile = @"C:\index.rdf";
var text = File.ReadAllText(rdfFile);
XmlReader reader = XmlReader.Create(new StringReader(text));
XElement doc = XElement.Load(reader);
XmlNameTable nameTable = reader.NameTable;
XmlNameTable table = nameTable ?? new NameTable();
var manager = new XmlNamespaceManager(table);
manager.AddNamespace(RDFNamespaceName, RDFNamespace);
manager.AddNamespace(RDFNamespaceName2, RDFNamespace2);
manager.AddNamespace(RDFNamespaceName3, RDFNamespace3);
manager.AddNamespace(RDFNamespaceName4, RDFNamespace4);
manager.AddNamespace(RDFNamespaceName5, RDFNamespace5);
manager.AddNamespace(RDFNamespaceName6, RDFNamespace6);
manager.AddNamespace(RDFNamespaceName7, RDFNamespace7);
var res = doc.XPathSelectElements(RDFXpath, manager);
private const string RDFXpath = "/rdf:RDF/channel";
private const string RDFNamespaceName = "rdf";
private const string RDFNamespace = @"http://www.w3.org/1999/02/22-rdf-syntax-ns#";
private const string RDFNamespaceName2 = "";
private const string RDFNamespace2 = @"http://purl.org/rss/1.0/";
private const string RDFNamespaceName3 = "cc";
private const string RDFNamespace3 = @"http://web.resource.org/cc/";
private const string RDFNamespaceName4 = "content";
private const string RDFNamespace4 = @"http://purl.org/rss/1.0/modules/content/";
private const string RDFNamespaceName5 = "admin";
private const string RDFNamespace5 = @"http://webns.net/mvcb/";
private const string RDFNamespaceName6 = "sy";
private const string RDFNamespace6 = @"http://purl.org/rss/1.0/modules/syndication/";
private const string RDFNamespaceName7 = "dc";
private const string RDFNamespace7 = @"http://purl.org/dc/elements/1.1/";
部分:
<?xml version="1.0" encoding="utf-8" ?>
- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:cc="http://web.resource.org/cc/" xmlns="http://purl.org/rss/1.0/">
- <channel rdf:about="http://blogs.charlotte.com/panthers/">
<title>Inside the Panthers</title>
...
感謝您的快速反應,不幸的是我仍然沒有結果。 – uril