Я планирую извлечь идентификатор в соответствии с сообщением, которое хранится в файле журнала. Например: если сообщение «Приложение запущено», я должен связать идентификатор сообщения и вернуться в бесчисленный список.
Вот моя строка xml:
String xml =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<log>\n" +
" <entry id=\"1\">\n" +
" <message>Application started</message>\n" +
" </entry>\n" +
" <entry id=\"2\">\n" +
" <message>Application ended</message>\n" +
" </entry>\n" +
"</log>";
И в моем основном методе я вызываю GetIDsByMessage для чтения строки:
foreach (int id in LogParser.GetIdsByMessage(xml, "Application ended"))
Console.WriteLine(id);
И я определяю свой GetIdsByMessage как:
public static IEnumerable<int> GetIdsByMessage(string xml, string message)
{
// write to return id {2} for message="Application ended"
}
Я попытался проанализировать строку как xml вот так:
XmlDocument xmltest = new XmlDocument();
xmltest.LoadXml(xml);
XmlNodeList elemlist = xmltest.GetElementsByTagName("message");
Но я не уверен, как собрать все идентификаторы и вернуть их вызывающей стороне. Любые указатели?
Вот мой полный код:
public class LogParser
{
public static IEnumerable<int> GetIdsByMessage(string xml, string message)
{
// write to return id {2} for message="Application ended"
XmlDocument xmltest = new XmlDocument();
xmltest.LoadXml(xml);
XmlNodeList elemlist = xmltest.GetElementsByTagName("message");
}
public static void Main(string[] args)
{
String xml =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<log>\n" +
" <entry id=\"1\">\n" +
" <message>Application started</message>\n" +
" </entry>\n" +
" <entry id=\"2\">\n" +
" <message>Application ended</message>\n" +
" </entry>\n" +
"</log>";
foreach (int id in LogParser.GetIdsByMessage(xml, "Application ended"))
Console.WriteLine(id);
}
}
Спасибо