分为以上几个部分:
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(\"ublishTime\");
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(\"ublishTime\");
//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(\"ublishTime\").InnerText = ss.Publishtime.ToString(\"yyyyMMddHHmmss\");
nodelist.SelectSingleNode(\"URL\").InnerText = ss.Url;
}
}
3ftp操作xml,涉及到一个组件.dll
下载地址:
具体操作:包括ftp的连接和断开,这些都不详说了,有关操作xml的部分 |