I’m trying to parse an xml file using XPath
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true); // never forget this!
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(File);
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr
= xpath.compile("//PerosnList/List/Person");
It took me alot of time to see that it’s not working cause the root element got xmlns attribute
once i remove the attr it works fine!, how can i workaround this xlmns attr without deleting it from the file ?
The xml looks like this:
<?xml version="1.0" encoding="utf-8"?>
<Root xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/vsDal.Entities">
.....
....
<PersonList>
...
<List>
<Person></Person>
<Person></Person>
<Person></Person>
</List>
</PersonList>
</Root>
Thanks.
You need to provide a
NamespaceContextand namespace your expression. See here for an example.