Tôi chắc chắn rằng điều này là cơ bản và có thể đã được hỏi trước đây, nhưng tôi chỉ bắt đầu sử dụng LINQ to XML.LINQ to XML - Tìm một phần tử
Tôi có một XML đơn giản mà tôi cần đọc và ghi.
<Documents>
...
<Document>
<GUID>09a1f55f-c248-44cd-9460-c0aab7c017c9-0</GUID>
<ArchiveTime>2012-05-15T14:27:58.5270023+02:00</ArchiveTime>
<ArchiveTimeUtc>2012-05-15T12:27:58.5270023Z</ArchiveTimeUtc>
<IndexDatas>
<IndexData>
<Name>Name1</Name>
<Value>Some value</Value>
<DataType>1</DataType>
<CreationTime>2012-05-15T14:27:39.6427753+02:00</CreationTime>
<CreationTimeUtc>2012-05-15T12:27:39.6427753Z</CreationTimeUtc>
</IndexData>
<IndexData>
<Name>Name2</Name>
<Value>Some value</Value>
<DataType>3</DataType>
<CreationTime>2012-05-15T14:27:39.6427753+02:00</CreationTime>
<CreationTimeUtc>2012-05-15T12:27:39.6427753Z</CreationTimeUtc>
</IndexData>
...
</IndexDatas>
</Document>
...
</Documents>
Tôi có nút "Tài liệu" chứa các nút "Tài liệu".
Tôi có GUID của tài liệu và tên "IndexData". Tôi cần tìm tài liệu bằng GUID và kiểm tra xem nó có "IndexData" với một số tên không. Nếu không có, tôi cần thêm nó.
Bất kỳ trợ giúp nào đều được đề xuất, vì tôi gặp sự cố khi đọc và tìm kiếm các phần tử máng.
Hiện nay tôi đang cố gắng sử dụng (trong C#):
IEnumerable<XElement> xmlDocuments = from c in XElement
.Load(filePath)
.Elements("Documents")
select c;
// fetch document
XElement documentElementToEdit = (from c in xmlDocuments where
(string)c.Element("GUID").Value == GUID select c).Single();
EDIT
xmlDocuments.Element("Documents").Elements("Document")
này trả về không có kết quả, thậm chí tho xmlDocuments.Element ("Tài liệu") thực hiện. Có vẻ như tôi không thể nhận các nút Tài liệu từ nút Tài liệu.
Tôi nghĩ rằng nên được 'doc.Descendants ("Tài liệu")' –
Cảm ơn, cố định. –