• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

Convert XML to XML

Lakposht

کاربر تازه وارد
تاریخ عضویت
9 مارس 2006
نوشته‌ها
22
لایک‌ها
0
با سلام به همه دوستان

من فایل book.xml دارم و می خواهم ساختار آن را تغییر داده و در فایل دیگری به نام Newbook.xml ذخیره کنم
ساختار تگ ها در فایل book.xml به صورت زیر است

<?xml version="1.0" encoding="utf-8" ?>
<books>
<row>
<field name="title">123</field>
<isbn/>
</row>
<row>
<field name="title">abc</field>
<isbn/>
</row>
</books>

و من می خواهم ساختار آن را به شکل زیر تغییر داده و در فایل Newbook.xml ذخیره کنم

<?xml version="1.0" encoding="utf-8" ?>
<books>
<row>
<title>123</title>
<isbn/>
</row>
<row>
<title>abc</title>
<isbn/>
</row>
</books>
لطفا اگر اطلاعاتی دارید منو راهنمایی کنید
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
اگه حتی دانش XML هم نداری خیلی راحت فایل به به صورت استریم باز میکنی و به صورت استرینگش میکنی بعد
<title> رو با <field name="title"> و </title> رو با </field> ریپلیس میکنی . بعد استریم رو به صورت فایل ذخیره میکنی .
 

Lakposht

کاربر تازه وارد
تاریخ عضویت
9 مارس 2006
نوشته‌ها
22
لایک‌ها
0
سلام آقاي روزنامه چي
ضمن تشكر از راهنمايي شما
توضيح در مورد مشكل :
يك جدول بانك MySQL را به صورت XML اكسپورت كرده ام ومي خواهم آن را به كمك DataSet در بانك sQL Server 2000 وارد كنم . در فايل XML حاصله فيلد هايي كه داراي مقدار بوده اند به صورت
<field name=”BookTitle”>ASP.net</field>
هستند يعني نام فيلد در اتريبيوت name قرار گرفته و فيلدهاي خالي به صورت
<ISBN/>
هستند دراين فايل تعداد ركورد ها 600 است و در هريك از اين ها 70 تگ مختلف است
با توجه به اينكه تعداد سطرها و نيز تعداد فيلدهاي اين سطرها زياد است نمي توان از روش شما فرمت فايل را تغيير داد.

اگر روش ديگري به ذهن تان مي رسد لطفا بگوييد
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
خوب اگه نمیخوای این کا رو بکنی باید اطلاعات رو از XML به عنوان یه بانک اطلاعاتی بخونی و بعد توی sql اینزرت کنی ، من با mysql کار نکردم نمیتونی مثلا به صورت یه فایل acseess اکسپرتش کنی و خیلی راحت به وسیله enterprise Manager ایمپرتش کنی ؟؟

در غیر این صورت اینا میتونه کمکت کنه :
http://aspnet.4guysfromrolla.com/articles/052902-1.aspx
http://www.freevbcode.com/ShowCode.asp?ID=2789
 

Lakposht

کاربر تازه وارد
تاریخ عضویت
9 مارس 2006
نوشته‌ها
22
لایک‌ها
0
با سلام
نه متاسفانه دیگه به فایل mysql دسترسی ندارم و فقط یک فایل XML در اختیارم هست.
و دستورات زیر رو نوشته ام ولی خوب کار نمی کند مثلا تگ های خالی مثل <test/> رو به شکل </> مینویسه

لطفا کد زیر رو ببینید


FileStream Wfs=new FileStream("c:/inetpub/wwwroot/XMltoDB/myBookList.xml",FileMode.Create);
XmlTextWriter xmlw=new XmlTextWriter(Wfs,System.Text.Encoding.Unicode);
xmlw.Formatting = Formatting.Indented;

xmlw.WriteStartDocument();
xmlw.WriteStartElement("root");

StreamReader Rfs=new StreamReader("F:/XML/test.xml");
XmlTextReader xmlr=new XmlTextReader(Rfs);

do
{
if(xmlr.NodeType==XmlNodeType.Element)
{
if(xmlr.GetAttribute("name")!="")
{
xmlw.WriteStartElement(xmlr.GetAttribute("name"));
xmlw.WriteString(xmlr.ReadString());
xmlw.WriteEndElement();
}
else
{
xmlw.WriteNode(xmlr,false);
}
}
}
while (xmlr.Read());
xmlw.WriteEndElement();
xmlw.WriteEndDocument();
xmlw.Close();
DataSet ds=new DataSet();
ds.ReadXml(MapPath("c:/inetpub/wwwroot/XMltoDB/myBookList.xml"));
DataGrid1.DataSource=ds;
DataGrid1.DataBind();

ببخشید کد هام به هم ریخته است. نمیدونم چرا اینطور Paste شد
 
بالا