<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>
大家好,我嘗試只得到2特定的數據行,但遺憾的是它不工作了,因爲我想很想有一定的幫助; 3XML文件,探索和值執行
這是我的代碼
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