1.已知:test.xml<?xml version="1.0" encoding="GB2312" ?>
<Root>
<main  id="1">
<sub >1.jpg</sub>
<sub >title1</sub>
<sub >content1</sub>
</main><main  id="2">
<sub >2.jpg</sub>
<sub >title2</sub>
<sub >content2</sub>
</main>
</Root>2.读取XML数据的方法:ReadXmlData.csprivate void ReadXmlData()
{
string FileName = Server.MapPath("test.xml");
XmlDocument doc = new XmlDocument();
doc.Load(FileName);
XmlNode node = doc.SelectSingleNode("//Root");
if (node != null)
{
int i=0;
int j=1;
foreach (XmlElement E in node.ChildNodes)

foreach (XmlElement F in E.ChildNodes)
{
string Car_Title,Car_Content,Car_Jpg;
Response.Write(F.OuterXml + "<BR>");
i=i+1;
if(i %  3==0)
{
//调用生成页面的方法:
getfile(j,Car_Jpg,Car_Title,Car_Content); Response.Write("生成"+j+".htm"+ "<BR>"); j=j+1;
}
}
}  
}
}
问题是:
在每次生成页面前,如何将从XML中取出的内容
1.jpg,title1,content1
放在这个方法中:getfile(j,Car_Jpg,Car_Title,Car_Content);
现在需要修改的就是读取XML数据的这个方法!
比如当我读取这个xml文件的时候要这样来调用
getfile(j,1.jpg,title1,Content1);
getfile(j,2.jpg,title2,Content);

解决方案 »

  1.   

    private void getfile(string index, string imgAddress, string title, string content);将从XML中取出的内容保存,按参数调用不可以么?
      

  2.   

    读取xml后输出的结果:
    1.jpg
    title1
    content12.jpg
    title2
    content
    应用ReadXmlData()方法实际上循环了6次所以不要截取没次的三个变量
      

  3.   

    读取xml后输出的结果:
    1.jpg
    title1
    content12.jpg
    title2
    content
    应用ReadXmlData()方法实际上循环了6次所以不方便来截取每次循环的三个变量
      

  4.   

    实际上搂住是像读取Xml文档节点的值,然后赋给变量。
      

  5.   

    sfar(人生几度悲凉)理解正确,
    那么如何换个思路来判断XML的节点呢,这样来赋给变量赋值就方便些吧:)
      

  6.   

    自己用笨方法搞定^_^
    private void ReadXmlData()
    {
    string FileName = Server.MapPath("Data.xml");
    XmlDocument doc = new XmlDocument();
    doc.Load(FileName);
    XmlNode node = doc.SelectSingleNode("//Root");
    if (node != null)
    {
    int i=0;
    int j=1;
    string str="";
    foreach (XmlElement E in node.ChildNodes)

    foreach (XmlElement F in E.ChildNodes)
    {
    string Car_Jpg,Car_Title,Car_Content;
    //先组合变量
    str=str+F.OuterXml+",";
    i=i+1;
    if(i %  3==0)
    {
    Response.Write(str+ "<BR>");
    //再撤分变量^_^
    Car_Jpg=str.Substring(0,str.IndexOf(@","));
    Car_Title=str.Remove(1,str.LastIndexOf(@","));
    Car_Content=str.Remove(0,str.LastIndexOf(@","));
    //利用撤分的变量来调用生成页面的方法:
    getfile(j,Car_Jpg,Car_Title,Car_Content);
    str="";                                 
    j=j+1;
    }
    }
    }  
    }
    }