特定のXAttributeとXElementを検索しようとしています。C#XMLの検索と置換
<IcMDetails ServerGroup="ABC">
<IncidentId>984513515</IncidentId>
<Title>today is a great day</Title>
<Description>this is a test</Description>
<State>Active</State>
<Severity>2</Severity>
<DateCreated>2016-12-12</DateCreated>
</IcMDetails>
<IcMDetails ServerGroup="XYZ">
<IncidentId>6845613</IncidentId>
<Title>today is a great day</Title>
<Description>this is a test</Description>
<State>Active</State>
<Severity>2</Severity>
<DateCreated>2016-12-08</DateCreated>
</IcMDetails>
<IcMDetails ServerGroup="ABC">
<IncidentId>12345345</IncidentId>
<Title>today is a great day</Title>
<Description>this is a test</Description>
<State>Resolved</State>
<Severity>2</Severity>
<DateCreated>2016-12-08</DateCreated>
</IcMDetails>
ここで、私は特定の子レコードが見つかったら はのServerGroupは= ABC 状態=アクティブ
、私は状態を更新します。
public static void Update()
{
string filePath = "XML.xml"
XDocument doc = XDocument.Load(filePath);
var items = from i in doc.Descendants("IcMDetails")
select i;
foreach(var item in items)
{
item.Element("State").Value = "NewValue";
}
}
私は次のようにXMLファイルを読みました。しかし、私はXAttribute値を読み取ることができません。
のXML LINQを使用してpublic static void Read()
{
XmlTextReader reader = new XmlTextReader("TFS_Tickets.xml");
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element: // The node is an element.
Console.Write("<" + reader.Name);
Console.WriteLine(">");
break;
case XmlNodeType.Attribute:
Console.WriteLine(reader.Value);
break;
case XmlNodeType.Text: //Display the text in each element.
Console.WriteLine(reader.Value);
break;
case XmlNodeType.EndElement: //Display the end of the element.
Console.Write("</" + reader.Name);
Console.WriteLine(">");
break;
}
}