Używam XmlReader .NET do analizowania pliku XML za pomocą pętli:XmlReader - Element samozamykający się nie uruchamia zdarzenia EndElement?
while (xml.Read()) {
switch xml.NodeType {
case XmlNodeType.Element:
//Do something
case XmlNodeType.Text:
//Do something
case XmlNodeType.EndElement:
//Do something
}
}
Zastanawiałem się, czy to normalne, że następujący kod XML nie wywołuje pewne węzły endElement? Zwróć uwagę na brakujące miejsce przed />, ale nie sądzę, że to jest problem.
<date month="November" year="2001"/>
<zone name="xml"/>
Czy istnieje inny NodeType lub właściwość wskazująca element samozamykający?
Jak bym odróżnić ' ' i '' kiedy mój obecny 'NodeType' jest' StartElement'? "IsEmptyElement" ma wartość "prawda" dla obu scenariuszy. –
@BrianWarshaw: Zobaczysz, czy węzeł 'EndElement' jest obecny, w zasadzie ... Nie znam żadnego sposobu zrobienia tego natychmiast, gdy jesteś na" StartElement ". –
Dzięki - okazało się, że nie miałem racji co do tego, że 'IsEmptyElement' jest prawdziwe w tych przypadkach. Zbyt długo wpatrywałem się w to wyjście :-) –