これは基本的で、おそらくこれまでに尋ねられたと確信していますが、私はLinqをXMLに使用し始めています。Linq to XML - 要素の検索
私は読み書きが必要な単純なXMLを持っています。
<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>
「文書」ノードには「文書」ノードが多数含まれています。
私はドキュメントのGUIDと "IndexData"という名前を持っています。 GUIDでドキュメントを探し、名前に "IndexData"があるかどうかを確認する必要があります。 それがない場合は追加する必要があります。
トラフ要素の読み取りと検索に問題があるので、助けが必要です。
現在、私は(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")
これはxmlDocuments.Element( "ドキュメント")しさえカントー、何の結果を返しません。ドキュメントノードからドキュメントノードを取得できないようです。
を私は 'doc.Descendants( "ドキュメント")に固定' –
おかげで、されるべきだと思います。 –