У меня возникли проблемы с использованием XmlReader
для чтения XML-файла. Я могу открыть и закрыть файл, хорошо (я думаю), но когда дело доходит до анализа нужной мне информации, я немного растерялся. Вот бит файла, который мне нужно проанализировать:
<?xml version="1.0" encoding="UTF-8"?>
<database name="Dictionary">
<data>
<Translations>
<Translation UniversalAbbv="Enu" lang="en" localization="US" unicode="0">
<Set>
...
</Set>
<Set>
...
</Set>
<Set>
<CaseSensitive value="0" />
<Enums translate="1">
<Enum_Entry ENUM_H="STOPRUN_STOP" EnumID="0" EnumString="Stop" SetID="160" />
<Enum_Entry ENUM_H="STOPRUN_RUN" EnumID="1" EnumString="Run" SetID="160" />
<Enum_Entry ENUM_H="STOPRUN_HOLD " EnumID="2" EnumString="Hold" SetID="160" />
</Enums>
<IncludeFiles_cs name="CSFile" value="StopRun.cs" />
<IncludeFiles_h name="Header" value="NULL" />
<IncludeFiles_java name="Java" value="NULL" />
<SetID value="160" />
<SetName value="Stop Run" />
<TwoSet ENUM_H="STOPRUN_ENUM_SET" />
</Set>
<Set>
...
</Set>
</Translation>
</Translations>
</data>
</database>
Мне нужно найти где EnumID="0"
или EnumID="1"
(или "STOPRUN_STOP"
или "STOPRUN_RUN"
) и соответственно вытащить строки "Stop"
или "Run"
. Вот что у меня есть для кода:
static class Dictionary
{
static private XmlReader Reader = null;
static public void Open()
{
XML_Generator.Dictionary.Reader = XmlReader.Create(XML_Generator.Program.DictionaryFilename);
}
static public void Close()
{
XML_Generator.Dictionary.Reader.Close();
}
static public void Read()
{
while (Reader.Read())
{
Trace.TraceInformation(XML_Generator.Dictionary.Reader.ReadElementContentAsString()); // <-- This throw an error. :(
}
}
}
Я знаю, что это не так много, но я немного растерялся, куда идти с этим. Любая помощь будет оценена. Спасибо.