Ik zit met een ogenschijnlijk simpel probleem, maar op een of andere manier kom ik er toch niet uit.
Ik heb een xml-document met daarin een aantal 'marker'-elementen, en nu zou ik graag de positie van die elementen binnen een string-representatie van dat xml-document bepalen. Met andere woorden, ik lees het xml-document in zowel als string als via een XmlTextReader:
Als ik nu met mijn XmlTextReader tegen zo'n marker-node aanloop, zou ik graag de positie van die marker-node in mijn "templateXml"-string willen bepalen.
Echter, de XmlTextReader voorziet alleen in een surrogaat-mogelijkheid d.m.v. de LineNumber en LinePosition properties, en deze handmatig omzetten naar een positie in een string lijkt me nogal foutgevoelig. Of weet iemand toevallig van een API-functie die de positie binnen een string met newlines en tabs netjes omzet naar een (regel, positie)-combinatie?
Wat ik ook heb geprobeerd is om mijn eigen StringReader te maken die wel een positie bijhoud van wat de XmlTextReader heeft gelezen, maar blijkbaar leest deze laatste blokken van 8K in... daar wordt je dus ook niet veel wijzer van.
Wie heeft er een idee?
Ik heb een xml-document met daarin een aantal 'marker'-elementen, en nu zou ik graag de positie van die elementen binnen een string-representatie van dat xml-document bepalen. Met andere woorden, ik lees het xml-document in zowel als string als via een XmlTextReader:
C#:
1
2
3
4
5
6
7
8
9
| string templateXml; XmlTextReader xtr; StreamReader sr = new StreamReader(templateXmlFile); templateXml = sr.ReadToEnd(); sr.Close(); StringReader sr = new StringReader(templateXml); xtr = new XmlTextReader(psr); |
Als ik nu met mijn XmlTextReader tegen zo'n marker-node aanloop, zou ik graag de positie van die marker-node in mijn "templateXml"-string willen bepalen.
Echter, de XmlTextReader voorziet alleen in een surrogaat-mogelijkheid d.m.v. de LineNumber en LinePosition properties, en deze handmatig omzetten naar een positie in een string lijkt me nogal foutgevoelig. Of weet iemand toevallig van een API-functie die de positie binnen een string met newlines en tabs netjes omzet naar een (regel, positie)-combinatie?
Wat ik ook heb geprobeerd is om mijn eigen StringReader te maken die wel een positie bijhoud van wat de XmlTextReader heeft gelezen, maar blijkbaar leest deze laatste blokken van 8K in... daar wordt je dus ook niet veel wijzer van.
Wie heeft er een idee?