xml字符串解析,通过判断该某节点的子节点的值获取改子节点的某个兄弟节点的值
例如:
string response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<Response>"
+ "<ResultCode>0</ResultCode>"
+ "<ResultMsg></ResultMsg>"
+ "<Item>"
+ "<DeptID>101</DeptID>"
+ "<ParDepId>0</ParDepId>"
+ "<DeptName>内科</DeptName>"
+ "</Item>"
+ "<Item>"
+ "<DeptID>102</DeptID>"
+ "<ParDepId>0</ParDepId>"
+ "<DeptName>外科</DeptName>"
+ "</Item>"
+ "<Item>"
+ "<DeptID>103</DeptID>"
+ "<ParDepId>0</ParDepId>"
+ "<DeptName>妇科</DeptName>"
+ "</Item>"
+ "<Item>"
+ "<DeptID>105</DeptID>"
+ "<ParDepId>101</ParDepId>"
+ "<DeptName>神经科内科</DeptName>"
+ "</Item>"
+ "</Response>";
要求就是通过判断所有<Item>节点内的<ParDepId>节点的值等于0来获取兄弟节点<DeptName>的内容。
解决方案:
XmlDocument doc = new XmlDocument();
doc.LoadXml(response);
XmlNodeList xnls = doc.SelectNodes("Response/Item");
foreach(XmlNode item in xnls)
{
string parDepId = item.SelectSingleNode("ParDepId").InnerText.Trim();
if ("0".Equals(parDepId))
{
string deptName = item.SelectSingleNode("DeptName").InnerText.Trim();
MessageBox.Show(deptName);
}
}