保存前检查重复的XML,如果找到重复,请告诉我 [英] XML checking for duplicates before saving, if duplicate found tell me about it
本文介绍了保存前检查重复的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屋!
查看全文