<imgdir name="02380000">
<imgdir name="info">
<canvas name="icon" width="32" height="32">
<vector name="origin" x="0" y="32"/>
</canvas>
<canvas name="iconRaw" width="27" height="38">
<vector name="origin" x="0" y="38"/>
</canvas>
<int name="price" value="1"/>
<int name="tradeBlock" value="1"/>
<int name="bigSize" value="1"/>
<int name="only" value="1"/>
<int name="monsterBook" value="1"/>
<int name="mob" value="100100"/>
</imgdir>
<imgdir name="spec">
<int name="consumeOnPickup" value="1"/>
</imgdir>
</imgdir>
Привет всем, им пытаются получить только два конкретных строк данных, но, к сожалению, он не работает, как я хочу, хотел бы иметь некоторую помощь; 3XML файлы Exploration и значения исполнения ордеров
Это мой код
public void ReadValue_FromXML()
{
//====================================
string Path = FilePathString_box.Text;
Path.Replace(@"\", @"\\");
//====================================
string ConnectionStringPath = "";
MySqlConnection MySqlCon = new MySqlConnection();
MySqlCon.ConnectionString = ConnectionStringPath;
string Update_MonsterCardsData = " INSERT INTO monstercarddata (id,cardid,mobid)VALUES(@Rowid,@CardNumber,@mob);";
XmlDocument doc = new XmlDocument();
doc.Load(Path);
int CountElements;
var elements = doc.SelectNodes("//imgdir");
foreach (XmlNode node in elements)
{
string MonsterCardIDx;
string MobID;
if (ReadNameAndValue(node, out MobID))
{
MonsterCardIDx = node.SelectSingleNode("./@name").InnerText;
if (MonsterCardIDx != "0238.img")
{
if (MobID != "")
{
int Row = 1;
ElementCount_lebel.Text = Row.ToString();
int MonsterCard = Int32.Parse(MonsterCardIDx);
MySqlCommand MySqlComnd = new MySqlCommand(Update_MonsterCardsData, MySqlCon);
MySqlParameter MonsterCardID = new MySqlParameter("@CardNumber", MySqlDbType.Int32);
MonsterCardID.Value = MonsterCard;
MySqlComnd.Parameters.Add(MonsterCardID);
MySqlParameter MonsterID = new MySqlParameter("@mob", MySqlDbType.Int32);
MonsterID.Value = MobID;
MySqlComnd.Parameters.Add(MonsterID);
MySqlParameter RowID = new MySqlParameter("@Rowid", MySqlDbType.Int32);
RowID.Value = Row;
MySqlComnd.Parameters.Add(RowID);
try
{
MySqlCon.Open();
MySqlComnd.ExecuteNonQuery();
MySqlCon.Close();
Row++;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
}
}
}
private bool ReadNameAndValue(XmlNode parent, out string MobID)
{
MobID = "";
var node = parent.SelectSingleNode("./imgdir");
if (node == null)
{
return false;
}
try
{
if (parent.SelectSingleNode("./int/name").InnerText == "mob")
{
MobID = parent.SelectSingleNode("./int/value").InnerText;
}
}
catch (Exception)
{
}
return true;
}
выход я получаю MonasterCard =02380000 and MobID=""
но mobID
должны быть 100100
В методе ReadNameAndValue() имеется ошибка. Невозможно помочь, не увидев xml. – jdweng