日期:2014-05-18  浏览次数:20771 次

关于xml的面试题目,求高手解答下
1.写出班级号为2的所有学生的xpath
<学校>
<班级 班号="1">
<学生 姓名="张三"/>
<学生 姓名="李四"/>

</班级>
<班级 班号="2">
<学生 姓名="王二"/>

</班级>
</学校>

2.有以下XML文档,请用Xpath查询出下列 符号name属性为“RBC”、且子节点<结论>不为空的节点。
<符号 name=’RBC’>
<名称>红细胞</名称>
<检验值>180g/L</检验值>
<结论>+</结论>
</符号>
<符号/>


------解决方案--------------------
学校/班级[@班号=2]/@班号"
------解决方案--------------------
XmlDataDocument xd = new XmlDataDocument();
xd.Load(@"..\..\XMLFile1.xml");
XmlNode node = xd.SelectSingleNode("符号[@name=\"'RBC'\"]/结论");
if(node.InnerText!="")
Console.WriteLine(node.InnerText);
------解决方案--------------------
XmlNodeList list = doc.SelectedNodes("/学校/班级[@班号=2]/学生");

XmlNodeList list = doc.SelectedNodes("/符号s/符号[@name='RBC' and 结论[string-length(.) > '0']]");

你的第二个不是标准的XML
我加了个根节点“符号s”

------解决方案--------------------
1--》
C# code

XmlNodeList result = doc.SelectNodes("//学校/班级[@班号=1]/学生");
        foreach (XmlNode item in result)
        {
            Response.Write(string.Format("{0}-----{1}", item.Name, item.Attributes["姓名"].Value));
        }