保存前检查重复的XML,如果找到重复,请告诉我 [英] XML checking for duplicates before saving, if duplicate found tell me about it

查看:78
本文介绍了保存前检查重复的XML,如果找到重复,请告诉我的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨Guys / Gals,



在这里打了一小撮(这对我来说还是很新的,所以宝贝语言);



我想检查重复项,如果我尝试输入相同的值,则会出现一个消息框告诉我,我想检查APIKEY和VCODE。如果它们匹配我的XML中已有的值,我不希望它再次添加。



 <?  xml     version   =  1.0   < span class =code-summarycomment> encoding   =  utf-8  >  
< < span class =code-leadattribute> APISAVE xmlns:xsi = http://www.w3.org/2001/XMLSchema-instance xmlns:xsd = http://www.w3.org/2001/XMLSchema > ;
< ID > 3e9316bc-6190-4d1d-81e1-9130755ee0ad < / ID >
< APIKEY > 1234 < / APIKEY >
< VCODE > 1234 < / VCODE >
< / API保存 > <? xml version = 1.0 encoding = utf-8 >
< APISAVE xmlns:xsi = http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd = http://www.w3 .org / 2001 / XMLSchema >
< ID > c67ade2a-d568-40d2-a72f-29f896903fd1 < / ID >
< ; APIKEY > 1234567 < / APIKEY >
< ; VCODE > 1234567 < / VCODE >
< ; / APISAVE > <? xml version = 1.0 编码 = utf-8 >
< ; APISAVE xmlns:xsi = http://www.w3.org/2001/XMLSchema-instance xmlns:xsd = http://www.w3.org/2001/XMLSchema & gt;
< ID > 12e777f2-910e-443f-ab6d-b1d2053ae12b < / ID >
< APIKEY < span class =code-keyword>> 1234 < / APIKEY >
< VCODE < span class =code-keyword>> 1234 < / VCODE >
< / APISAVE >





我的代码看起来像这样



APISAVE.cs:



  public   class  APISAVE 
{
static void main( string [] args)
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load( data.XML);
XmlNodeList userNodes = xmldoc.SelectNodes( data.XML);
foreach ( userNodes中的XmlNode userNode );

}

private string id;
private string APIkey;
private string VCode;

public string ID
{
get { return id; }
set {id = Guid.NewGuid()。ToString(); }
}

public string APIKEY
{
get { return APIkey; }
set {APIkey = value ; }
}

public string VCODE
{
get { return VCode; }
set {VCode = value ; }

}

public static void SaveData( object obj, string 文件名)
{

XmlSerializer sr = new XmlSerializer(obj.GetType());
TextWriter writer = new StreamWriter(文件名, true );
sr.Serialize(writer,obj);
writer.Close();这是我的按钮:



  private   void  button1_Click( object  sender,EventArgs e)
{
{
try
{


APISAVE info = new APISAVE();
info.APIKEY = txtAPI.Text;
info.VCODE = txtVerC.Text;
info.ID = info.ID;
APISAVE.SaveData(info, data.XML);

}

catch (例外情况)

{
MessageBox .Show(ex.Message);
}
}
}





我的最终目标是使用数据稍后放在这里。

解决方案

如果可以使用序列化,为什么要自己处理XML?请参阅:

https://en.wikipedia.org/wiki/Serialization [< a href =https://en.wikipedia.org/wiki/Serializationtarget =_ blanktitle =New Window> ^ ],

http://msdn.microsoft.com/en-us/library/ms733127.aspx [ ^ ]。



-SA


Hi Guys/Gals,

struggeling a little here (this is all still really new to me so baby language);

I want to check for duplicates and if I try and enter in the same value a message box comes up telling me, I want to check APIKEY and VCODE. If they match values already in my XML I don't want it to add again.

<?xml version="1.0" encoding="utf-8"?>
<APISAVE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ID>3e9316bc-6190-4d1d-81e1-9130755ee0ad</ID>
  <APIKEY>1234</APIKEY>
  <VCODE>1234</VCODE>
</APISAVE><?xml version="1.0" encoding="utf-8"?>
<APISAVE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ID>c67ade2a-d568-40d2-a72f-29f896903fd1</ID>
  <APIKEY>1234567</APIKEY>
  <VCODE>1234567</VCODE>
</APISAVE><?xml version="1.0" encoding="utf-8"?>
<APISAVE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ID>12e777f2-910e-443f-ab6d-b1d2053ae12b</ID>
  <APIKEY>1234</APIKEY>
  <VCODE>1234</VCODE>
</APISAVE>



My Code looks like this

APISAVE.cs:

public class APISAVE
    {
        static void main(string[] args)
        {
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load("data.XML");
            XmlNodeList userNodes = xmldoc.SelectNodes("data.XML");
            foreach (XmlNode userNode in userNodes) ;

        }

        private string id;
        private string APIkey;
        private string VCode;

        public string ID
        {
             get { return id; }
             set { id = Guid.NewGuid().ToString(); }
        }

        public string APIKEY
        {
            get { return APIkey; }
            set { APIkey = value; }
        }

        public string VCODE
        {
            get { return VCode; }
            set { VCode = value; }

        }

        public static void SaveData(object obj, string Filename)
        {

            XmlSerializer sr = new XmlSerializer(obj.GetType());
            TextWriter writer = new StreamWriter(Filename, true);
            sr.Serialize(writer, obj);
            writer.Close();

        }
    }



Here is my Button:

private void button1_Click(object sender, EventArgs e)
{
    {
        try
        {


            APISAVE info = new APISAVE();
            info.APIKEY = txtAPI.Text;
            info.VCODE = txtVerC.Text;
            info.ID = info.ID;
            APISAVE.SaveData(info, "data.XML");

        }

        catch (Exception ex)

        {
            MessageBox.Show(ex.Message);
        }
    }
}



my end goal is to use the data put in here later on.

解决方案

Why dealing with XML by yourself if you can use serialization instead? Please see:
https://en.wikipedia.org/wiki/Serialization[^],
http://msdn.microsoft.com/en-us/library/ms733127.aspx[^].

—SA


这篇关于保存前检查重复的XML,如果找到重复,请告诉我的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆