Ik heb een probleem met de XmlDocument en een XML met daarin een DTD declaratie. Zodra er een dtd bovenin de XML file zit werkt mijn path expressie niet meer. Waar gaat het over:
Aan het einde van deze code is metaNode = null. Dit moet niet. Echter, als ik er dit van maak dan werkt de code wel:
Ik krijg geen exception echter in beide gevallen dus de DTD wordt misschien/denk ik wel gevonden. Heeft iemand de oplossing die ik nog niet weer?
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <?xml version="1.0"?> <!DOCTYPE package PUBLIC "+//DTD OEB 1.2 Package//EN" "http://openebook.org/dtds/oeb-1.2/oebpkg12.dtd"> <package unique-identifier="oebps12package"> <metadata> <dc-metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oebpackage="http://openebook.org/namespaces/oeb-package/1.0/"> <dc:Title>Jaapjan's folly</dc:Title> <dc:Identifier scheme="uri" id="oebps12package">http://openebook.org/specifications/oeb-ps/1.2/</dc:Identifier> <dc:Language>en-US</dc:Language> </dc-metadata> </metadata> <manifest> <item id="jaapjanfolly" href="jaapjanfolly.html" media-type="text/html" /> </manifest> <spine> <itemref idref="jaapjanfolly" /> </spine> </package> |
C#:
1
2
3
| XmlDocument opfDocument = new XmlDocument(); opfDocument.Load(Filename); XmlNodeList metaNode = opfDocument.DocumentElement.SelectNodes("metadata"); |
Aan het einde van deze code is metaNode = null. Dit moet niet. Echter, als ik er dit van maak dan werkt de code wel:
C#:
1
2
3
4
| XmlDocument opfDocument = new XmlDocument(); opfDocument.XmlResolver = null; opfDocument.Load(Filename); XmlNodeList metaNode = opfDocument.DocumentElement.SelectNodes("metadata"); |
Ik krijg geen exception echter in beide gevallen dus de DTD wordt misschien/denk ik wel gevonden. Heeft iemand de oplossing die ik nog niet weer?
Ik ook, jij niet?