cuốn sách gpt4 ai đã làm

Trình đọc XML C# đang cố đọc từ tệp XML

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 15:24:53 hai mươi bốn 4
mua khóa gpt4 Nike

Tôi đang cố đọc từ một tệp xml không phải lúc nào cũng có cùng một lược đồ, mục tiêu là đọc từ tệp và sắp xếp dữ liệu đã thu thập thành một mảng để tôi có thể sử dụng dữ liệu đã sắp xếp sau này. ..

Tệp XML:



































đây là mã của tôi

Uri uri = Uri mới(đường dẫn);
tên tệp chuỗi = System.IO.Path.GetFileName(uri.LocalPath);
Trình đọc XmlReader = XmlReader.Create(path);
int x = 0;
int Row_length = 0;
#khu vực Kiểm tra độ dài hàng trong tệp
//==================================================== ====================================================== =
Tài liệu XmlDocument = XmlDocument mới();
doc.Load(đường dẫn);
Gốc XmlElement = doc.DocumentElement;
XmlNodeList elemList = root.GetElementsByTagName("imgdir");
for (x = 0; x < elemList.Count; x++);
DisplayChanges_Box.Text += ("Tổng số phần tử= " + x + '\n' + "Tệp XML= " + tên tệp + '\n');
Row_length = x;

#endregion
int CurrentArrayDataBox = 0;
int[] itemIDArray = new int[x + 1];
chuỗi[] itemNamesArray = chuỗi mới[x + 1];
int LastRow = Row_length;

trong khi (reader.Read())
{
if (reader.IsStartElement())
{
if (reader.HasAttribut)
{
// <>
chuỗi ItemNumberAsString;
int ItemNumber;
chuỗi ItemDescription;
ItemNumberAsString = reader.GetAttribution ("tên");
bool được phân tích cú pháp = Int32.TryParse(ItemNumberAsString, out ItemNumber);
nếu (được phân tích cú pháp)
{
reader.ReadToNextSibling("string");
ItemDescription = reader.GetAttribution ("chuỗi");
// << Ghi vào ID và Tên Mảng các giá trị dữ liệu thu được>>
itemIDArray[CurrentArrayDataBox] = ItemNumber;
itemNamesArray[CurrentArrayDataBox] = ItemDescription;
CurrentArrayDataBox++;
reader.ReadToFollowing("imgdir");
}
khác nếu (! đã phân tích cú pháp)
{
reader.ReadToFollowing("imgdir");
}
}
}
}

==================
Chương trình sẽ sắp xếp thông tin như thế này...
Mỗi lần nó kiểm tra thuộc tính hiện tại để phát hiện xem nó có phải là một chuỗi hay không. Giống như:

"Eqp.img"
"Eqp"
"Phụ kiện"

phớt lờ họ
hoặc nếu nó là

"1010000"
"1010001"
"1010002"
"1010003"
...

Lưu số vào ItemIDArray , lưu trữ giá trị tên chuỗi của chúng trong ItemNamesArray

Hiện tại tôi dường như không thể lấy được số, chỉ phát hiện xem đó có phải là một chuỗi hay không và khi thuộc tính là số thì nó hiển thị dưới dạng "tên" thay vì số thực

Trân trọng.

câu trả lời hay nhất

Đoạn mã sau kiểm tra xem nút imgdir có nút con chuỗi hay không.

bool riêng ReadNameAndValue(XmlNode cha, tên chuỗi ngoài, giá trị chuỗi ngoài)
{
tên = "";
giá trị = "";

var node = parent.SelectSingleNode("./string");
nếu (nút == null)
{
trả về sai;
}

thử
{
name = parent.SelectSingleNode("./string/@name").InnerText;
value = parent.SelectSingleNode("./string/@value").InnerText;
}
bắt (Ngoại lệ)
{
}

trả về đúng sự thật;
}

public void ParseDoc(string fileName = @"c:\temp\soexample.xml")
{
Tài liệu XmlDocument = XmlDocument mới();
doc.Load(tên tệp);

var element = doc.SelectNodes("//imgdir");

foreach (nút XmlNode trong các phần tử)
{
tên chuỗi;
giá trị chuỗi;
if (ReadNameAndValue(nút, tên out, giá trị out))
{
chuỗi id = node.SelectSingleNode("./@name").InnerText;
Console.WriteLine("Id: " + id + ", Tên: " + name + ", Value: " + value);

// làm bất cứ điều gì bạn muốn với id, tên và giá trị
}
}
}

Những gì được in là

Id: 1010000, Tên: tên, Giá trị: Râu dài màu nâu
Id: 1010001, Tên: tên, Giá trị: Goatee
Id: 1010002, Tên: tên, Giá trị: Mặt nạ Ninja dành cho nam
Id: 1010003, Tên: tên, Giá trị: Bóng 5 giờ
Id: 1010004, Tên: tên, Giá trị: Bộ ria mép của Tướng quân (1)
Id: 1010005, Tên: tên, Giá trị: Bộ ria mép của Tướng quân (2)
Id: 1010006, Tên: tên, Giá trị: Vết sẹo Yakuza
Id: 1011000, Tên: tên, Giá trị: Mặt nạ Ninja dành cho Nữ
Id: 1011001, Tên: tên, Giá trị: Mặt nạ Ninja SF

Về trình đọc XML C# đang cố đọc từ tệp XML, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/35795532/

hai mươi bốn 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress