Using xpath and rdlc report
c#, rdlc, xml
Solution
I´m afraid we´ll need to see your XPath statement to be sure, but my guess is an issue with namespaces.
The elements that are not prefixed are in the `default namespace` which for the above document sets it to http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition.
You XPath queries now need to include these namespaces in the queries. So, an selectSingleNode(`/elementnameicanseeinnotepad`) will not give you anything.
To add the namespaces in the query you will have to use the `XmlNamespaceManager` class (or use the verbose syntax of XPath which i don´t recommend).
// get an instance
XmlNamespaceManager xMngr = new XmlNamespaceManager();
// associate the prefix ´def´ with the namespace-uri from the xml document we loaded
xMngr.AddNamespace( `def´, http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition);
// associate the prefix ´rd´ (same as used in document) with the namespace-uri from the xml document we loaded
xMngr.AddNamespace( `rd´, http://schemas.microsoft.com/SQLServer/reporting/reportdesigner);
// use the prefix(s) in the XPath query
xDoc.DocumentElement.SelectSingleNode(´/def:elementnameiseeinnotepad´, xMngr );
Hope this helps.
Problem
i will try to explain the problem very clear. I user MicroSoftReportViewer where i load my report. But before loading it i want to change somethings.Till here everything is ok. I want to use xpath but when i load the rdlc( xml ) file using XMLDocument the xpath expression does not work. The only xpath that work is "\" witch gets root. I opened the file with notepad and saw that the first xml node uses these schemas ``` xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" ``` I tried to read the file using XMLReader with XMLSchema added but still xpath does not work. Please i will be very great grateful to get peace of code to see how to load the file so xpath works. Best Regards, Iordan