PDA

View Full Version : تنظیمات تگها در xml



negar.rafie
شنبه 10 آبان 1393, 15:22 عصر
چطوری تگهایی که ایجاد میکنیم زیر هم نروند و در یک خط ذخیره شوند(البته نه همه ی تگها)
یعنی اینطوری ذخیره نشه
<g>
<info>
<Name>1</Name>
<Familly>1</Familly>
</info>
</g>




و اینطوری ذخیره بشه

<g>
<info><Name>1</Name><Familly>1</Familly></info>
</g>

plus
شنبه 10 آبان 1393, 18:29 عصر
تنظیمات مربوط به XmlWriter به این صورته که یا شما Indent دارین یا کلا ندارین.چیزی که شما میخواین نیاز معمول نیست و خوب طبعتا XmlWriter اگه بخواد هم نمیدونه کدوم تگ ها رو Indent کنه کدوم ها رو نه!
بنابراین تا اونجا که من میدونم راهی جز اینکه به صورت دستی با کلاس های XmlReader و XmlWriter، کار خوندن و نوشتن سفارشی Element ها رو انجام بدین نیست که البته کار پر درسری هست.
البته اگه محتوی Xml شما خیلی پیچیده نیست شاید بتونید بجای استفاده از کلاس های مربوط به Xml از Regex استفاده کنید و جاهایی که میخواین رو Indent بدین...

negar.rafie
شنبه 10 آبان 1393, 19:10 عصر
چطوری باید این کار را بکنم

khokhan
شنبه 10 آبان 1393, 19:34 عصر
چطوری باید این کار را بکنم
با سلام
ابتدا یه متد برای حذف تمامی تب ها و اینتر ها بنویس وبگذار به ابتدای کدی که تگها رو ذخیره خواهد کرد
اینطوری

string s = "";
var sb = new StringBuilder(s.Length);

foreach (char i in s)
if (i != '\n' && i != '\r' && i != '\t')
sb.Append(i);

s = sb.ToString();

بعد از این دیگه کارتون آسونه
بعد از هر تگی که لازم دونستین سطر بعدی ایجاد نشه بعد از ذکر نام تگ و مقدار تگ یه کاما بگذارین و متد رو صدا بزنین :لبخند:

اینطوری :

writer.WriteElementString("author", "Mahesh Chand", s);

اون s که در آخر سطر بعد از کاما گذاشته شده همون فراخوانی متد حذف سطر می باشد

negar.rafie
شنبه 10 آبان 1393, 20:40 عصر
نمیشه
مثلا من میخوام person بره سطره بعد

khokhan
شنبه 10 آبان 1393, 20:50 عصر
نمیشه
مثلا من میخوام person بره سطره بعد
می تونین s رو از آخرش بردارین

writer.WriteStartElement("person");

negar.rafie
شنبه 10 آبان 1393, 21:29 عصر
نشد
کلا یک سطر بیشتر اضافه نمیکنه اونم نمیشه

khokhan
شنبه 10 آبان 1393, 23:44 عصر
نشد
کلا یک سطر بیشتر اضافه نمیکنه اونم نمیشه
.................................................

negar.rafie
دوشنبه 12 آبان 1393, 10:23 صبح
منظور من این سوال هتش
http://stackoverflow.com/questions/9205073/reading-xml-file-and-indenting