하여 XmlTextReader와 XML의 하위 요소 가져 오기 :내가 XML 다음 한
<UpsHistory>
<UpsSettings>
<Filename>modbusevent.xml</Filename>
<FileDate>04.02.1970</FileDate>
<FileTime>00:05:39</FileTime>
<Type>ENERTRONIC I 3-3 20kVA</Type>
<Location></Location>
<Phases>3</Phases>
<UpsContact>
<Company></Company>
<Department></Department>
<Contact></Contact>
<City></City>
<Street></Street>
<Phone></Phone>
</UpsContact>
</UpsSettings>
<UpsData id="1">
<Date>09.08.2012</Date>
<Time>12:05:53.52</Time>
<EventCode>574</EventCode>
<EventState>A</EventState>
<EventText><![CDATA[IGBT - DRIVERBOARD FAILURE]]></EventText>
<EventAction>/upsexe.cgi?cmd=2003&p1=574&reload=/mbevents.cgi&wait=5</EventAction>
</UpsData>
<UpsData id="2">
<Date>09.08.2012</Date>
<Time>11:23:08.88</Time>
<EventCode>606</EventCode>
<EventState>E</EventState>
<EventText><![CDATA[BYPASS VOLTAGE FAILURE]]></EventText>
<EventAction>/upsexe.cgi?cmd=2003&p1=606&reload=/mbevents.cgi&wait=5</EventAction>
</UpsData>
<UpsData id="3">
<Date>09.08.2012</Date>
<Time>11:23:07.06</Time>
<EventCode>1000</EventCode>
<EventState>E</EventState>
<EventText><![CDATA[CUSTOMER RELAY 1 ON]]></EventText>
<EventAction>/upsexe.cgi?cmd=2003&p1=1000&reload=/mbevents.cgi&wait=5</EventAction>
</UpsData>
<UpsData id="4">
<Date>09.08.2012</Date>
<Time>11:23:06.97</Time>
<EventCode>1003</EventCode>
<EventState>E</EventState>
<EventText><![CDATA[CUSTOMER RELAY 2 OFF]]></EventText>
<EventAction>/upsexe.cgi?cmd=2003&p1=1003&reload=/mbevents.cgi&wait=5</EventAction>
</UpsData>
...
<UpsData id="602">
<Date>08.09.2012</Date>
<Time>11:06:13.84</Time>
<EventCode>606</EventCode>
<EventState>E</EventState>
<EventText><![CDATA[BYPASS VOLTAGE FAILURE]]></EventText>
<EventAction>/upsexe.cgi?cmd=2003&p1=606&reload=/mbevents.cgi&wait=5</EventAction>
</UpsData>
</UpsHistory>
내가 자식 요소의 값을 갖는 모든 UpsData 요소를 싶어,하지만 난 단지 UpsData 요소 ID response.GetResponseStream());
XmlTextReader rdr = new XmlTextReader(sw);
while (rdr.Read())
{
if (rdr.IsStartElement())
{
if (rdr.NodeType == XmlNodeType.Element)
{
if (rdr.Name == "UpsData")
{
rdr.MoveToAttribute("id");
if (rdr.Name == "Date")
{
ConsoleInfo(rdr.Value);
}
}
}
}
}
어떻게 하위 요소 값을 가져올 수 있습니까? 감사!
XML 입력 크기가 특정 임계 값보다 작을 것이라는 것을 알고 있다면 이것은 XmlReader보다 "XmlDocument"에 더 적합한 작업처럼 보입니다. DOM 메소드를 사용하면 훨씬 쉽게 처리 할 수 있습니다. –