*********如何将.txt文本里的信息按照一定格式转换成.xml文件,并且保存起来!

vitti 2003-09-27 11:10:44
我有一个.txt里面有很多的东西如下:

123456789012345 1 1 4563346.00 775768.82
124434343434343 3 3 56565.00 7984656.89


保存成:
<Info>
<Info_mx>
<nss>123456789012345</nss>
<nsa>1</nsa>
<nsr>1</nsr>
<nsj>4563346.00</nsj>
<nsje>775768.82 </nsje>
</Info_mx>
<Info_mx>
<nss>124434343434343</nss>
<nsa>3</nsa>
<nsr>3</nsr>
<nsj>56565.00</nsj>
<nsje>7984656.89</nsje>
</Info_mx>

...全文
312 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
BossFriday 2003-09-28
  • 打赏
  • 举报
回复
我这里有个用控件做广告轮播的例子。因为该控件也是要靠一个xml文件控制,
所以才做后台添加和删除的时候要重新写入一个xml文件,
我的做法是把要变的内容存到库中做中介,然后将其内容读出来匹配成合要求的
内容,然后生成xml并保存
下面是关键代码你看看。
这也是我在这里别人交我用的XmlDataDocument这个类才写出来,希望对你也有用
try
{
string xml="<?xml version=\"1.0\" encoding=\"gb2312\"?>";
xml+="<Advertisements>";
//读库循环生成合要求的xml文件
MyDataBase MyRead=new MyDataBase();
MyRead.SqlString="select * from tb_adv";
int Count=MyRead.GetDataSet.Tables[0].Rows.Count;
for(int i=0;i<Count;i++)
{
xml+="<Ad>";
//读imageurl字段
xml+="<ImageUrl>"+MyRead.GetDataSet.Tables[0].Rows[i]["imageurl"].ToString()+"</ImageUrl>";
//读navigateurl
xml+="<NavigateUrl>"+MyRead.GetDataSet.Tables[0].Rows[i]["navigateurl"].ToString()+"</NavigateUrl>";
//读alternatetext
xml+="<AlternateText>"+MyRead.GetDataSet.Tables[0].Rows[i]["alternatetext"].ToString()+"</AlternateText>";
//读Keyword
xml+="<Keyword>"+MyRead.GetDataSet.Tables[0].Rows[i]["Keyword"].ToString()+"</Keyword>";
//读impressions
xml+="<Impressions>"+MyRead.GetDataSet.Tables[0].Rows[i]["impressions"]+"</Impressions>";

xml+="</Ad>";

}
//
xml+="</Advertisements>";
//写一个xml文件并Save
XmlDataDocument xmldoc=new XmlDataDocument();
xmldoc.LoadXml(xml);
string xmlUrl=ConfigurationSettings.AppSettings["xmlUrl"]+"ads.xml";
xmldoc.Save(xmlUrl);
Response.Redirect("admin_advertisements_list.aspx");
changezhong 2003-09-28
  • 打赏
  • 举报
回复
up
yuzaichun 2003-09-28
  • 打赏
  • 举报
回复
我来给你写后半部分如何构造XML,不过是VB.NET的。

Dim m_xmlFile As String
Dim m_xmlWt As Xml.XmlTextWriter
Dim m_xmlDoc As Xml.XmlDocument
Dim m_xmlRootel As Xml.XmlElement

m_xmlFile = "C:\INFO.XML"

m_xmlWt = New Xml.XmlTextWriter(XMLFile, Nothing)
m_xmlDoc = New Xml.XmlDocument
m_xmlRootel = m_xmlDoc.CreateElement("INFO")

Dim xmlel_mx As Xml.XmlElement = m_xmlDoc.CreateElement("Info_mx")
Dim xmlel_nss As Xml.XmlElement = m_xmlDoc.CreateElement("nss")
Dim xmlel_nsa As Xml.XmlElement = m_xmlDoc.CreateElement("nsa")
Dim xmlel_nsr As Xml.XmlElement = m_xmlDoc.CreateElement("nsr")
Dim xmlel_nsj As Xml.XmlElement = m_xmlDoc.CreateElement("nsj")
Dim xmlel_nsje As Xml.XmlElement = m_xmlDoc.CreateElement("nsje")

xmlel_nss.InnerText ="123456789012345"
xmlel_nsa.InnerText ="1"
xmlel_nsr.InnerText ="1"
xmlel_nsj.InnerText ="4563346.00"
xmlel_nsje.InnerText ="775768.82 "

xmlel_mx.AppendChild(nss)
xmlel_mx.AppendChild(nsa)
xmlel_mx.AppendChild(nsr)
xmlel_mx.AppendChild(nsj)
xmlel_mx.AppendChild(nsje)

m_xmlRootel.AppendChild(xmlel_mx)

m_xmlWt.WriteStartDocument()
m_xmlDoc.AppendChild(m_xmlRootel)
m_xmlDoc.WriteTo(m_xmlWt)
m_xmlWt.Close()

自己修改一下就能用了。:)
vitti 2003-09-27
  • 打赏
  • 举报
回复
up
meetweb 2003-09-27
  • 打赏
  • 举报
回复
方法一
DataSet ds=New DataSet()
Ds1 = Form_DS_Load("E:\OFFICEIN.txt")
DS1.WriteXml( fileName);
//大功告成
'读取文本文件
public DataSet Form_DS_Load(string filename)
{
'读取文件
If(!File.Exists(filename))
{ // 不存在", "系统提示
// Exit Function
}
FileStream fs;
StreamReader sr;
fs = New FileStream(filename, FileMode.Open, FileAccess.Read);
sr = New StreamReader(fs);
strfileContent = sr.ReadToEnd();
//按照你的规则定义
strArray = strfileContent.Split(New Char() {" "});
//得到字符后,把相关的字符写进DataSet
//最后返回DataSet

}
贝贝壳壳 2003-09-27
  • 打赏
  • 举报
回复
先把数据读出来,再用XMLWriter写出.
xz_king 2003-09-27
  • 打赏
  • 举报
回复
用正则表达式匹配。

(\w*) *(\w*) *(\w*) *(\w*)
liqianhong 2003-09-27
  • 打赏
  • 举报
回复
OLEDB 好象支持TEXT吧,或者用XML.Serilize吧,看看帮助xml.seriralize吧

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧