tôi tạo ra một tập tin xml như thế này:làm thế nào để thêm/chèn nút có điều kiện vào XML sử dụng LINQ to XML
XElement employees =
new XElement("Work",
new XElement("record",
new XElement("Name", textBox1.Text),
new XElement("Phone", "206-555-0144"),
new XElement("Address",
new XElement("Street1", "123 Main St"),
new XElement("City", "Mercer Island"),
new XElement("State", "WA"),
new XElement("Postal", "68042")
)),
new XElement("record",
new XElement("Name", "22222"),
new XElement("Phone", "353245345"),
new XElement("Address",
new XElement("Street1", "sdfain St"),
new XElement("City", "asdf Island"),
new XElement("State", "QLD"),
new XElement("Postal", "54322")
)),
new XElement("record",
new XElement("Name", "Peter"),
new XElement("Phone", "1234"),
new XElement("Address",
new XElement("Street1", "sd St"),
new XElement("City", "cbr"),
new XElement("State", "act"),
new XElement("Postal", "2600")
)
)
);
Sau đó tôi muốn thêm nút con mới dưới "kỷ lục" mẹ nút dựa trên một điều kiện (trong đó name = "peter"), một cái gì đó như thế này:
empFile.Elements().Where(r => (string)r.Element("Name") == "Peter")
.Add(new XElement("record",
new XElement("Mobile", "3253425"),
new XElement("Work", 999999)
));
Làm cách nào để đạt được điều này?
Nitpick: Thay vì '(string) r.Element (" Name ")', tôi khuyên bạn nên sử dụng 'r.Element (" Name "). Value' có thể có dạng tốt hơn. – Timwi
@Timwi: Tôi sẽ không. Lợi thế của việc cast thành chuỗi là nó trả về null thay vì thổi lên khi cast từ null. Vì vậy, bất kỳ phần tử nào không có một phần tử con được gọi là Name chỉ bị bỏ qua, thay vì làm cho chương trình thất bại. Tôi gần như luôn luôn thích sử dụng các chuyển đổi rõ ràng trong LINQ to XML, trừ khi không tìm thấy một phần tử/thuộc tính nào được coi là đủ tồi để đảm bảo một ngoại lệ. –
@Jon Skeet: Điểm công bằng. Tôi thừa nhận tôi đã không nghĩ về null, nhưng ngay cả khi tôi đã làm, nó không phải là rõ ràng rằng 'op_Explicit' chấp nhận nó và không ném. Nó cũng không rõ ràng những gì 'op_Explicit' làm gì nếu, ví dụ, phần tử có subelements, trong khi tài liệu cho thuộc tính' Value' rõ ràng hơn (haha, irony) về nó. – Timwi