假设我有xml
pic.xml:
<?xml version="1.0" encoding="utf-8"?>
<imgdata>
<img picpath="中国">
<clickurl>1</clickurl>
</img>
<img picpath="日本">
<clickurl>2</clickurl>
</img>
<img picpath="美国">
<clickurl>3</clickurl>
</img>
</imgdata>我要读取他的clickurl该怎么读?
public void readXmla()
{
XmlDocument doc = new XmlDocument();
doc.Load("pic.xml"); XmlNodeList elemList = doc.GetElementsByTagName("img"); foreach (XmlNode xn in elemList)//遍历所有子节点
{
XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型
Console.WriteLine("name=" + xe.GetAttribute("picpath"));//在这里只能把picpath当做属性拿出来,但是无法得到clickurl
//假设我要在这里做判断,由picpath得到他对应的clickurl该怎么做?
if(xe.GetAttribute("picpath")=="中国")
{
//我在这里想拿到 clickurl的值
}
}
}
pic.xml:
<?xml version="1.0" encoding="utf-8"?>
<imgdata>
<img picpath="中国">
<clickurl>1</clickurl>
</img>
<img picpath="日本">
<clickurl>2</clickurl>
</img>
<img picpath="美国">
<clickurl>3</clickurl>
</img>
</imgdata>我要读取他的clickurl该怎么读?
public void readXmla()
{
XmlDocument doc = new XmlDocument();
doc.Load("pic.xml"); XmlNodeList elemList = doc.GetElementsByTagName("img"); foreach (XmlNode xn in elemList)//遍历所有子节点
{
XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型
Console.WriteLine("name=" + xe.GetAttribute("picpath"));//在这里只能把picpath当做属性拿出来,但是无法得到clickurl
//假设我要在这里做判断,由picpath得到他对应的clickurl该怎么做?
if(xe.GetAttribute("picpath")=="中国")
{
//我在这里想拿到 clickurl的值
}
}
}
解决方案 »
- 这种验证码如何识别?C#的代码怎么写?
- c#画图并且保存,但是要运行两次才会出现图。这是什么原因?
- 跪求大家帮忙,我的自动化事务为什么无法回滚?我哪写错了?
- 还是SerialPort控件的问题
- 新手问题,C#做WEB的机制是什么?
- 【动态类型实例化】System.Reflection.Assembly.Load("ProjectsBLL").CreateInstance("Test.A")如何调用方法?
- 狂扔分~~~
- 请指点两个问题,每人帮我吗?
- 如何构造函数
- .net 开发的Excel 1.0.0.5版 比原先版本漂亮一些了
- .net里面如何用代码实现合并多个word到一个word
- 利用UdpClient.send发包与接收报的问题
但是我不想这样
我希望能通过 clickurl 得到
因为假设我有
<clickurl1> 1 </clickurl1>
<clickurl2> 2 </clickurl2>
<clickurl3> 3</clickurl3>
呢
所以我希望从名字拿到,这样不管多少个我都能确定了
document.InnerXml = @"<?xml version="1.0" encoding="utf-8"?>
<imgdata>
<img picpath="中国">
<clickurl> 1 </clickurl>
</img>
<img picpath="日本">
<clickurl> 2 </clickurl>
</img>
<img picpath="美国">
<clickurl> 3 </clickurl>
</img>
</imgdata>
";
System.Xml.XmlNodeList nl = document.SelectNodes(@"//clickurl");
foreach (System.Xml.XmlNode n in nl)
{
Console.WriteLine(n.InnerText);
}
System.Xml.XmlDocument document = new System.Xml.XmlDocument();
document.InnerXml = @" <imgdata>
<img picpath=""中国"">
<clickurl> 1 </clickurl>
</img>
<img picpath=""日本"">
<clickurl> 2 </clickurl>
</img>
<img picpath=""美国"">
<clickurl> 3 </clickurl>
</img>
</imgdata>
";
//如果要按属性选择国家
//System.Xml.XmlNodeList nl = document.SelectNodes(@"//img[@picpath=""中国""]/clickurl"); //如果全部输出
System.Xml.XmlNodeList nl = document.SelectNodes(@"//clickurl");
foreach (System.Xml.XmlNode n in nl)
{
Console.WriteLine(n.InnerText);
}
而不是单独把clickurl拿出来...
我要得到假设中国的时候,从中国里面的到下面子节点
比如
<img picpath="中国">
<clickurl> 1 </clickurl>
<name> zg</name>
</img>
我希望的到picpath的时候能方便拿到下面的clickurl或者name通过这个名字
System.Xml.XmlDocument document = new System.Xml.XmlDocument();
document.InnerXml = @" <imgdata>
<img picpath=""中国"">
<clickurl> 1 </clickurl>
</img>
<img picpath=""日本"">
<clickurl> 2 </clickurl>
</img>
<img picpath=""美国"">
<clickurl> 3 </clickurl>
</img>
</imgdata>
";
System.Xml.XmlNodeList nl = document.SelectNodes(@"//clickurl");
foreach (System.Xml.XmlNode n in nl)
{
Console.WriteLine(n.ParentNode.Attributes["picpath"].Value);
Console.WriteLine(n.InnerText);
}
{
XmlDocument doc = new XmlDocument();
doc.Load(@"D:\project\zhangbotest\WindowsApplication1\WindowsApplication1\aa.xml"); XmlNodeList elemList = doc.SelectNodes("//imgdata//img[@picpath='aa']");
foreach (XmlElement e in elemList)
{
//e.InnerText;
}
}
public void readXmla()
{
XmlDocument doc = new XmlDocument();
doc.Load(@"D:\project\zhangbotest\WindowsApplication1\WindowsApplication1\aa.xml"); XmlNodeList elemList = doc.SelectNodes("//imgdata//img[@picpath='中国']");
foreach (XmlElement e in elemList)
{
e["name"];
e["clickurl"];
}
}
{
XmlDocument doc = new XmlDocument();
doc.Load(@"D:\project\zhangbotest\WindowsApplication1\WindowsApplication1\aa.xml"); XmlNodeList elemList = doc.SelectNodes("//imgdata//img[@picpath='中国']");
foreach (XmlElement e in elemList)
{
e["name"];
e["clickurl"];
}
}
正解..可以直接从e["name"]; 拿值,我汗...想复杂了,
也谢谢各位,我同时也得到了不少启发,谢谢!