PDA

View Full Version : ایجاد تگ ها در یک خط در xml



negar.rafie
سه شنبه 06 آبان 1393, 18:22 عصر
سلام
چطوری تگهایی که ایجاد میکنیم زیر هم نروند و در یک خط ذخیره شوند.

یعنی اینطوری ذخیره نشه
<g>
<info>
<Name>1</Name>
<Familly>1</Familly>
</info>
</g>

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

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

Rejnev
سه شنبه 06 آبان 1393, 20:41 عصر
کدتون رو که این تگ ها رو تولید میکنه بذارین برای اصلاح

negar.rafie
سه شنبه 06 آبان 1393, 21:37 عصر
string xmlPath = Path.Combine(Application.StartupPath, "My.xml");
XmlDocument xmlDoc = new XmlDocument();
XmlNode rootNode;

if (File.Exists(xmlPath))
{
xmlDoc.Load(xmlPath);
rootNode = xmlDoc.DocumentElement;
}
else
{
rootNode = xmlDoc.CreateElement("g");
xmlDoc.AppendChild(rootNode);
}
XmlNode info = xmlDoc.CreateNode(XmlNodeType.Element, "info", null);
XmlNode Name = xmlDoc.CreateNode(XmlNodeType.Element, "Name", null);
XmlNode Familly = xmlDoc.CreateNode(XmlNodeType.Element, "Familly", null);
rootNode.AppendChild(info);
Name.InnerText = "1";
Familly.InnerText = "1";
info.AppendChild(Name);
info.AppendChild(Familly);
xmlDoc.Save(xmlPath);

Rejnev
چهارشنبه 07 آبان 1393, 21:44 عصر
این تورفتگی ها به تشخیص خود کتابخونه مورد استفاده ایجاد میشه و نمیدونم راه حلی داره یا نه. ولی یک راه حل نه چندان بهینه که به ذهنم میرسه اینه که فایل رو بعد از ذخیره، دوباره بصورت متنی بخونین، کاراکتراهای تب و خط جدید رو حذف کنین و بعد دوباره ذخیره کنید.

pedram.11
چهارشنبه 07 آبان 1393, 22:34 عصر
سلام یه راه حل دیگه ای هم هست که کل دیتا رو در یک خط قرار میده، چون نمونه شمارو دیدم ترجیح دادم اینو نذارم چون نمونه شما همشون توی یه خط نبودن؛ بهرحال:
XmlDocument xmlDoc = new XmlDocument();
XmlNode rootNode;
if (File.Exists(xmlPath))
{
xmlDoc.Load(xmlPath);
rootNode = xmlDoc.DocumentElement;
}
else
{
rootNode = xmlDoc.CreateElement("g");
xmlDoc.AppendChild(rootNode);
}




XmlNode info = xmlDoc.CreateNode(XmlNodeType.Element, "info", null);
XmlNode Name = xmlDoc.CreateNode(XmlNodeType.Element, "Name", null);
XmlNode Familly = xmlDoc.CreateNode(XmlNodeType.Element, "Familly", null);
rootNode.AppendChild(info);
Name.InnerText = "1";
Familly.InnerText = "1";
info.AppendChild(Name);
info.AppendChild(Familly);
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = false;
XmlWriter xw = XmlWriter.Create(xmlPath, settings);
xmlDoc.WriteTo(xw);
xw.Close();

negar.rafie
جمعه 09 آبان 1393, 11:01 صبح
کد شما همه را در یک خط قرار میده

pedram.11
جمعه 09 آبان 1393, 11:10 صبح
بله خودم هم گفتم اینطوریه... راه دیگه ای فک نکنم باشه مگر اینکه خودتون یکی طراحی کنید...

negar.rafie
جمعه 09 آبان 1393, 15:49 عصر
کسی از دوستان دیگه بلد نیست