Иногда определенный XMLElement имеет значение:
<CAR>value</CAR>
иногда, хотя это не относится к повторно используемому XML:
<CAR/>
При использовании XmlReader я пока не уверен, как справиться с этой ситуацией. Например, у меня есть код, который читает каждый элемент. Но что, если автомобиль не имеет ценности возвращаться время от времени? Затем мой DateTime.Parse бомбит, так что я не совсем уверен, что нужно по существу справиться с этими ситуациями и пропустить его с помощью XmlReader:
reader.ReadStartElement("CAR");
// error here since car doesn't have a value this time
_tDate = DateTime.Parse(reader.ReadContentAsString());
EDIT:
if(!reader.IsStartElement())
Это тоже не работает. После того, как он видит, что это не начальный элемент, я получаю сообщение об ошибке и не уверен, как обработать его, пропустив его по существу после оператора if
if(!reader.IsStartElement())
{
reader.ReadStartElement("CAR");
_tDate = DateTime.Parse(reader.ReadContentAsString());
}
reader. ReadEndElement(); <-- ERROR HERE not sure how to move on
РЕДАКТИРОВАТЬ 2:
Как я могу стать правдой, если значение <CAR/>
reader.ReadStartElement("In");
_optedInDate = DateTime.Parse(reader.ReadContentAsString());
_userIsOut = false;
reader.ReadEndElement();
if(reader.IsStartElement("CAR"))
{
reader.ReadStartElement("CAR");
_optedOutDate = DateTime.Parse(reader.ReadContentAsString());
_userIsOptedOut = true;
}
reader.ReadStartElement("COLUMNS");
reader.ReadStartElement("COLUMN");
Это явно НЕ начальный элемент, но я понял ...
РЕДАКТИРОВАТЬ 3:
пробовал это:
if((reader.NodeType == XmlNodeType.Element) & (!reader.IsEmptyElement))
{
reader.ReadStartElement("CAR");
_optedOutDate = DateTime.Parse(reader.ReadContentAsString());
_userIsOptedOut = true;
}
reader.ReadStartElement("COLUMNS"); Error Here: Element 'COLUMNS' was not found. Line 12, position 2
Тип узла был "пробел". Я не могу понять, как, черт возьми, пропустить этот проклятый <CAR/>
.