2011/07/26

XPathDocument 에서 Namespace 존재하는 XML Parsing

윈도우 이벤트로그 XML 데이터를 활용해 보려고 하다가,. 기존에는 네임 스페이스 없는 XML 데이터만 파싱(네임스페이스 있는 XML 을 만들기는 하면서...ㅎㅎ)하는데 익숙해서,. 그대로 하니 쿼리가 안되서  한참 헤맴...;;

XPathDocument doc = new XPathDocument(new XmlTextReader("evtx.xml"));         
XPathNavigator nav = doc.CreateNavigator();

XmlNamespaceManager namespaceMgr = new XmlNamespaceManager(nav.NameTable);
namespaceMgr.AddNamespace("ns", "http://schemas.microsoft.com/win/2004/08/events/event");

XPathNodeIterator ni = nav.Select("//ns:Data", namespaceMgr);           
while (ni.MoveNext())
{
    ni.Current.MoveToFirstAttribute();
    string _Name = ni.Current.Value;
    ni.Current.MoveToParent();
    Console.WriteLine(_Name + ": " + ni.Current.ToString());
}

XmlNamespaceManager Class
http://msdn.microsoft.com/en-us/library/system.xml.xmlnamespacemanager.aspx


댓글 없음:

댓글 쓰기

가장 많이 본 글