پیدا کردن یک تگ خاص در XML
سلام دوستان من یه فایل xml دارم که داخلش کلی تگ وجود داره حالا میخوام بر اساس صفت خاصی دنبال های تگ های خودم بگیردم. تو نت هر چی سرچ زدم چیز خاصی ندادم همه جا باید اسم صفت رو بدونی ولی من میخوام تگ ها رو دونه دونه چک کنم داخلش صفتی با اسم x وجود داره بعد مقدارش صفت رو تغییر بدم.
با کد زیر میشه کلیه تگهای یه فایل xml رو تو لیست باکس لیست کرد.
XmlTextReader xmlReader = new XmlTextReader("1.xml");
while (xmlReader.Read())
{
switch (xmlReader.NodeType)
{
case XmlNodeType.Element:
listBox1.Items.Add("<" + xmlReader.Name + ">");
break;
case XmlNodeType.Text:
listBox1.Items.Add(xmlReader.Value);
break;
}
}
نقل قول: پیدا کردن یک تگ خاص در XML
یک نمونه از xml قرار بدید و بگید دنبال چه داده ای هستید.
نقل قول: پیدا کردن یک تگ خاص در XML
<?xml version="1.0"?>
<tag1>
<tag2 />
<tag3>
<tag4 ali="1" reza="2">
<tagtest Name="qqq1" />
<tagtest Name="wwww" />
<tagtest Name="eeee" />
<tagtest Name="rrrr" />
</tag4>
<tag5 ali="1" ahmad="3">
<tagtest Name="qqq1" />
<tagtest Name="wwww" />
<tagtest Name="eeee" />
<tagtest Name="rrrr" />
</tag5>
<tag6 ali="1">
<tagtest Name="qqq1" />
<tagtest Name="wwww" />
<tagtest Name="eeee" />
<tagtest Name="rrrr" />
</tag6>
</tag3>
</tag1>
سلام مهندس نمونه رو ببینید من دنبال تگ هایی هستم که صفت اون ali هست و بعدش مقدارش رو تغییر بدم.
نقل قول: پیدا کردن یک تگ خاص در XML
//using System.Data.Linq;
using (StreamReader stream = new StreamReader("XmlFilePath" , Encoding.UTF8))
{
XElement xml = XElement.Load(stream);
IEnumerable<XElement> nodeList =
from element in xml.Descendants()
where element.Attributes().Any(attr=> attr.Name == "ali")
select element;
// ...
}
نقل قول: پیدا کردن یک تگ خاص در XML
سلام مهندس عالی بود. خوب کار کرد فقط یه نکته ای هست الان من صفتهای ali رو پییدا کردم چون از streamreader استفاده کردیم نمیتونم مقدار value این صفت ها رو تغییر بدم.
نقل قول: پیدا کردن یک تگ خاص در XML
nodeList را قبل از بلاک using تعریف و داخل بلاک مقداردهی کنید.
بعد از بلاک مربوط به StreamReader تغییرات لازم را روی xml اعمال کرده، یک StreamWriter بسازید و از متد Save از شئ xml استفاده کنید.
نقل قول: پیدا کردن یک تگ خاص در XML
دمت گرم عالی بود. با XmlDocument تو خود بلاک streamreder حلش کردم.