xml怎么获取我节点内的子节点的值?急啊 10
3个回答
展开全部
asp:实现代码
public void main()
{
//构造xml 字符串 ,实际中肯定是作为参数传递进来的
StringBuilder str_xml = new StringBuilder();
str_xml.Append("<?xml version=\"1.0\" encoding=\"gb2312\"?>");
str_xml.Append("<user>");
str_xml.Append("<person name=\"张三\" sex =\"男\" age=\"25\">");
str_xml.Append("<pass>"); str_xml.Append("呵呵"); str_xml.Append("</pass>");
str_xml.Append("<Address>"); str_xml.Append("江苏"); str_xml.Append("</Address>");
str_xml.Append("</person>");
str_xml.Append("<person name=\"李四\" sex =\"男\" age=\"25\">");
str_xml.Append("<pass>"); str_xml.Append("哈哈"); str_xml.Append("</pass>");
str_xml.Append("<Address>"); str_xml.Append("江苏"); str_xml.Append("</Address>");
str_xml.Append("</person>");
str_xml.Append("<person name=\"王二\" sex =\"男\" age=\"25\">");
str_xml.Append("<pass>"); str_xml.Append("呼呼"); str_xml.Append("</pass>");
str_xml.Append("<Address>"); str_xml.Append("江苏"); str_xml.Append("</Address>");
str_xml.Append("</person>");
str_xml.Append("</user>");
//调用方法传递参数
GetXmlData(str_xml.ToString(),"张三");
}
private string GetXmlData(string str_xml,string userName)
{
string result = null;
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(str_xml);
System.Xml.XmlNode xmlNode = doc.SelectSingleNode("user");
foreach (System.Xml.XmlNode tradeNode in xmlNode.SelectNodes("person"))
{
//Attributes 获取属性值
string name = tradeNode.Attributes["name"].Value.ToString();
if (name == userName)
{
//SelectSingleNode 获取节点
System.Xml.XmlNode pass = tradeNode.SelectSingleNode("pass");
System.Xml.XmlNode address = tradeNode.SelectSingleNode("Address");
result="pass= "+ pass.InnerText + ",Adress="+address.InnerText;
}
}
return result;
}
public void main()
{
//构造xml 字符串 ,实际中肯定是作为参数传递进来的
StringBuilder str_xml = new StringBuilder();
str_xml.Append("<?xml version=\"1.0\" encoding=\"gb2312\"?>");
str_xml.Append("<user>");
str_xml.Append("<person name=\"张三\" sex =\"男\" age=\"25\">");
str_xml.Append("<pass>"); str_xml.Append("呵呵"); str_xml.Append("</pass>");
str_xml.Append("<Address>"); str_xml.Append("江苏"); str_xml.Append("</Address>");
str_xml.Append("</person>");
str_xml.Append("<person name=\"李四\" sex =\"男\" age=\"25\">");
str_xml.Append("<pass>"); str_xml.Append("哈哈"); str_xml.Append("</pass>");
str_xml.Append("<Address>"); str_xml.Append("江苏"); str_xml.Append("</Address>");
str_xml.Append("</person>");
str_xml.Append("<person name=\"王二\" sex =\"男\" age=\"25\">");
str_xml.Append("<pass>"); str_xml.Append("呼呼"); str_xml.Append("</pass>");
str_xml.Append("<Address>"); str_xml.Append("江苏"); str_xml.Append("</Address>");
str_xml.Append("</person>");
str_xml.Append("</user>");
//调用方法传递参数
GetXmlData(str_xml.ToString(),"张三");
}
private string GetXmlData(string str_xml,string userName)
{
string result = null;
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(str_xml);
System.Xml.XmlNode xmlNode = doc.SelectSingleNode("user");
foreach (System.Xml.XmlNode tradeNode in xmlNode.SelectNodes("person"))
{
//Attributes 获取属性值
string name = tradeNode.Attributes["name"].Value.ToString();
if (name == userName)
{
//SelectSingleNode 获取节点
System.Xml.XmlNode pass = tradeNode.SelectSingleNode("pass");
System.Xml.XmlNode address = tradeNode.SelectSingleNode("Address");
result="pass= "+ pass.InnerText + ",Adress="+address.InnerText;
}
}
return result;
}
追问
假如我xml有很多数据呢,全部打进去不是很烦吗
追答
xml 肯定是参数传递进来的,而xml文档肯定之前就已经存在了啊,我这里只是为了让你看懂。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$(function() {
$("#btnOK").click(function() {
$.ajax({
url: "XMLtest.xml",
dataType: 'xml', //返回的类型为XML
success: function(xml) {
//查找xml元素
$(xml).find("user").each(function() {
var $info = $(this).find("person");
if( $info.eq(0).attr("name") == "张三")
{
$("#label_pass").val($info.eq(0).text());
$("#label_Address").val($info.eq(1).text());
}
})
},
error: function(result, status) { //如果没有上面的捕获出错会执行这里的回调函数
alert(status);
}
});
//禁用按钮的提交
return false;
});
});
$("#btnOK").click(function() {
$.ajax({
url: "XMLtest.xml",
dataType: 'xml', //返回的类型为XML
success: function(xml) {
//查找xml元素
$(xml).find("user").each(function() {
var $info = $(this).find("person");
if( $info.eq(0).attr("name") == "张三")
{
$("#label_pass").val($info.eq(0).text());
$("#label_Address").val($info.eq(1).text());
}
})
},
error: function(result, status) { //如果没有上面的捕获出错会执行这里的回调函数
alert(status);
}
});
//禁用按钮的提交
return false;
});
});
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有个pass 和address 属性啊 用name 判断是属于什么 在调属性
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询