您是本帖第398个浏览者
xml操作(及tfp读取操作)
分为以上几个部分:
1.建立xml(看以下实例)
private void InitNewsText(ArrayList aa)//这种例子是传入一个Arraylist做为参数,代表了xml赋值时的每个节点的不同值做为一个类的一个集合,这里的节点是没有属性值的:
{
XmlDocument doc = new XmlDocument();
doc.AppendChild(doc.CreateXmlDeclaration("1.0", "GB2312", null));
XmlElement element1 = doc.CreateElement("iTV");
XmlNode node = doc.AppendChild(element1);
//初始化
for (int i = 0; i < 6; i++)
{
ScrollNews2 ss = (ScrollNews2)aa;
if (i < aa.Count)
{
XmlElement element = doc.CreateElement("News");
node = node.AppendChild(element);
element = doc.CreateElement("Title");
element.AppendChild(doc.CreateTextNode(ss.Title));
node.AppendChild(element);
element = doc.CreateElement("Content");
element.AppendChild(doc.CreateTextNode(ss.Content));
node.AppendChild(element);
element = doc.CreateElement("Column");
element.AppendChild(doc.CreateTextNode(ss.Column));
node.AppendChild(element);
element = doc.CreateElement("PublishTime");
element.AppendChild(doc.CreateTextNode(ss.Publishtime.ToString("yyyyMMddHHmmss")));
node.AppendChild(element);
element = doc.CreateElement("URL");
element.AppendChild(doc.CreateTextNode(ss.Url));
node.AppendChild(element);
}
else
{
XmlElement element = doc.CreateElement("News");
node = node.AppendChild(element);
element = doc.CreateElement("Title");
//element.AppendChild(doc.CreateTextNode(ss.Title));
node.AppendChild(element);
element = doc.CreateElement("Content");
element.AppendChild(doc.CreateTextNode(ss.Content));
node.AppendChild(element);
element = doc.CreateElement("Column");
//element.AppendChild(doc.CreateTextNode(ss.Column));
node.AppendChild(element);
element = doc.CreateElement("PublishTime");
//element.AppendChild(doc.CreateTextNode(ss.Publishtime.ToString("yyyyMMddHHmmss")));
node.AppendChild(element);
element = doc.CreateElement("URL");
//element.AppendChild(doc.CreateTextNode(ss.Url));
node.AppendChild(element);
}
}
//这里是ftp操作,
ftp.Put(Encoding.GetEncoding("GB2312").GetBytes(doc.OuterXml), newstext + ".sending");
try { ftp.Delete(newstext); }
catch { }
ftp.Rename(newstext + ".sending", newstext);
}
xml格式诸如:
<x>
<y>
<y1></y1>
</y>
<y>
<y1></y1>
</y>
</x>
另一种:是有属性的xml诸如:
代码例子:
private void InitNewsDisplayUrl(NewsDisplay display)//nodeElem.SetAttribute( "attr ", "attrValue ");//添加属性节点
{
string[] urls ={ display.LinkUrl1, display.LinkUrl2, display.LinkUrl3 };
string[] names ={ display.PicName1, display.PicName2, display.PicName3 };
XmlDocument doc = new XmlDocument();
doc.AppendChild(doc.CreateXmlDeclaration("1.0", "GB2312", null));
XmlElement element = doc.CreateElement("root");
XmlNode node = doc.AppendChild(element);
//初始化
for (int i = 1; i < 5; i++)//四个频道
{
element = doc.CreateElement("channel");
node = doc.DocumentElement .AppendChild(element);
XmlAttribute newatt = doc.CreateAttribute("id");
newatt.InnerText = i.ToString();
element.Attributes.Append(newatt);
//三个连接
for (int j = 0; j < 3; j++)
{
if (display.ID.ToString() == i.ToString())
{
element = doc.CreateElement("item");
node = doc.DocumentElement.AppendChild(element);
newatt = doc.CreateAttribute("picName");
newatt.InnerText =names[j];
element.Attributes.Append(newatt);
newatt = doc.CreateAttribute("linkUr");
newatt.InnerText =urls[j];
element.Attributes.Append(newatt);
}
else
{
element = doc.CreateElement("item");
node = doc.DocumentElement.AppendChild(element);
newatt = doc.CreateAttribute("picName");
newatt.InnerText = "";
element.Attributes.Append(newatt);
newatt = doc.CreateAttribute("linkUr");
newatt.InnerText = "";
element.Attributes.Append(newatt);
}
}
}
ftp.Put(Encoding.GetEncoding("GB2312").GetBytes(doc.OuterXml), newsDisplay );
}
xml例子诸如:
<x>
<y id="">
<y1 name="" url="">
</y>
<y id="">
<y1 name="" url="">
</y>
</x>
2读写xml
//第一种是针对有属性的
string[] urls ={ display.LinkUrl1, display.LinkUrl2, display.LinkUrl3 };
string[] names ={ display.PicName1, display.PicName2, display.PicName3 };
XmlNode nodeone = doc.SelectSingleNode("root");
foreach (XmlNode node in nodeone.ChildNodes)
{
if (node.Attributes[0].Value == display.ID.ToString())
{
for (int i = 0; i < node.ChildNodes.Count; i++)
{
node.ChildNodes.Attributes[0].Value = names;
node.ChildNodes.Attributes[1].Value = urls;
}
}
}
//这种针对没有属性的
XmlNodeList nodelist = doc.SelectNodes("/iTV/News");
if(nodelist .Count >0)
{
for(int i=0;i<nodelist .Count ;i++)
{
//hasNode = true;
if (i < aa.Count)
{
ScrollNews2 ss = (ScrollNews2)aa;
nodelist.SelectSingleNode("Title").InnerText = ss.Title;
nodelist.SelectSingleNode("Content").InnerText = ss.Content;
nodelist.SelectSingleNode("Column").InnerText = ss.Column;
nodelist.SelectSingleNode("PublishTime").InnerText = ss.Publishtime.ToString("yyyyMMddHHmmss");
nodelist.SelectSingleNode("URL").InnerText = ss.Url;
}
}
3ftp操作xml,涉及到一个组件.dll
下载地址:
具体操作:包括ftp的连接和断开,这些都不详说了,有关操作xml的部分
搜索更多相关主题的帖子:
xml tfp doc quot 节点