Tech
Forums
Jobs
Books
Events
Videos
Conference
Annual Conference
Bcrypt
Ai Conference
Live
More
Interviews
Certification
Training
Career
Members
News
Blogs
Contribute
An Article
A Blog
A Video
An Ebook
An Interview Question
Register
Login
0
Answer
XML Validation and XPath.
Ask a question
Ask a question
Upload Source Code:
Select only zip and rar file.
david_b_mcconnell
20y
2.2k
1
Reply
Hi, I am having a problem using XPath when I validate Xml documents with a schema. Basically what happens is that an XPath query doesn't return the nodes I require if a schema is used to validate the XML. I'll try and explain it as briefly as possible here. Consider the following XML.
XML Book One
Publisher
XML Book Two
Publisher
When I execute the following code 2 nodes are returned by the XPath query and this output is produced in the debug pane; Count = 2 XML Book One XML Book Two XmlTextReader reader = new XmlTextReader(@"C:\books.xml"); XmlValidatingReader vreader = new XmlValidatingReader(reader); vreader.ValidationType = ValidationType.Schema; XPathDocument xmldoc = new System.Xml.XPath.XPathDocument(vreader); XPathNavigator nav = xmldoc.CreateNavigator(); nav.MoveToRoot(); nav.MoveToFirstChild(); XmlNamespaceManager nsMgr = new XmlNamespaceManager(nav.NameTable); nsMgr.AddNamespace( "ns" , nav.NamespaceURI ); XPathExpression xPathExpr = nav.Compile("//Publisher[. = 'Publisher']/parent::node()/Title"); xPathExpr.SetContext(nsMgr); XPathNodeIterator iterator = nav.Evaluate(xPathExpr) as XPathNodeIterator; System.Diagnostics.Debug.WriteLine("Count = " + iterator.Count.ToString()); while ( iterator.MoveNext() ) System.Diagnostics.Debug.WriteLine(iterator.Current.Value); However, if i validate the same Xml with a schema as illustrated below;
XML Book One
Publisher
XML Book Two
Publisher
The XML is validated by the schema without error but no nodes are returned by the XPath query. What is going wrong? Thanks.
Post
Reset
Cancel
Answers (
0
)
Next Recommended Forum
creation of web pages
Memory allocation failures