C#将XML文件导入VS中,把其中存储的字符串信息转换为数值并用其绘制图线

XML文件名:test2.xml需要读取其中的文本信息,转化为数值信息,然后绘制图像。privatevoidbutton1_Click(objectsender,Even... XML文件名:test2.xml
需要读取其中的文本信息,转化为数值信息,然后绘制图像。

private void button1_Click(object sender,EventArgs e)
{
string str_path="..\\test2.xml";
XmlDocument xml=new XmlDocument();
XmlNode root;
XmlElement xe;

if(File.Exists(str_path))
{
xml.Load(str_path);
root=xml.SelectSingleNode("root"); //存在就查找根节点
}
else
{
XmlDeclaration declare=xml.CreateXmlDeclaration("1.0","UTF-8",null);
xml.AppendChild(declare);

root=xml.CreateElement("root"); //不存在就创建根节点
xml.AppendChild(root);

}

int x1,x2;
double y1,y2;
double a;
Pen myPen=new Pen(Color.Blue,3);
x1=x2=0;
y1=y2=panel1.Height/2;
for(x1=0;x1<panel1.Width;x1++)
{

a=2*Math.PI*x1/panel1.Width;
y1=Math.Sin(a);
y1=(1-y1)*panel1.Height/2;
panel1.CreateGraphics().DrawLine(myPen,x2,(float)y2,x1,(float)y1);
x2=x1;
y2=y1;

xe=xml.CreateElement("Record"); //创建元素
xe.SetAttribute("x1",x1.ToString());
xe.SetAttribute("x2",x2.ToString());
xe.SetAttribute("y1",y1.ToString());
xe.SetAttribute("y2",y2.ToString());
xe.InnerText="";
root.AppendChild(xe);
}

xml.Save(str_path);
}
展开
 我来答
阳光的雷咩咩
推荐于2016-01-04 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7794万
展开全部

你上面的操作似乎是把一系列图形保存为xml了,是否现在想实现反向转换?那么你认为技术难点在哪?有点建议,用系统自带的XmlSerializer即可实现序列化与反序列化,用不着你上面那么复杂地转换。示例代码。

    public class XmlSerializeHelper
    {
        /// <summary>
        /// Serialize QueryBuilder to string
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="o"></param>
        /// <returns></returns>
        public static string Serialize<T>(T o) where T : class
        {
            XmlSerializer ser = new XmlSerializer(o.GetType());
            StringWriter textWriter = new StringWriter();
            ser.Serialize(textWriter, o);
            return textWriter.ToString();
        }

        /// <summary>
        /// DeSerialize string to QueryBuilder
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="s"></param>
        /// <returns></returns>
        public static T DeSerialize<T>(string s) where T : class
        {
            XmlSerializer ser = new XmlSerializer(typeof(T));
            TextReader tr = new StringReader(s);
            return ser.Deserialize(tr) as T;
        }


    }
更多追问追答
追问
我是想把XML里面存好的点的数据反序列化,并且绘图图形。
上面的程序没有调用我存好的XML文件?也没有绘图的部分?
我第一次用这个XmlSerializer。
追答
用上面的方法不需要你管数据是怎么存储的,. net内置了方法保存每个科序列化类到文件。
Dara的世界
2014-11-08 · TA获得超过143个赞
知道小有建树答主
回答量:395
采纳率:100%
帮助的人:298万
展开全部
要是想读取xml信息,就一级级的读出信息,然后用Gdi+画不就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式