可读取多行内容,仅供参考
1xml文件内容:
<xml version="10" encoding="utf-8">
<filesauto>
<file>
<type>文件</type>
<state>√</state>
<path>C:\Users\mirror\Desktop\备份资料txt</path>
<text>未备份</text>
</file>
<file>
<type>文件</type>
<state>√</state>
<path>C:\Users\mirror\Desktop\待办txt</path>
<text>未备份</text>
</file>
<folder>
<type>文件夹</type>
<state>√</state>
<path>E:\Videos</path>
<text>未备份</text>
</folder>
<folder>
<type>文件夹</type>
<state>√</state>
<path>E:\Pictures</path>
<text>未备份</text>
</folder>
</filesauto>
2新建的类
public class FilesAuto
{
public FilesAuto()
{ }
private string fileType;
public string FileType
{
get { return fileType; }
set { fileType = value; }
}
private string fileState;
public string FileState
{
get { return fileState; }
set { fileState = value; }
}
private string filePath;
public string FilePath
{
get { return filePath; }
set { filePath = value; }
}
private string fileText;
public string FileText
{
get { return fileText; }
set { fileText = value; }
}
}
3读取xml数据到ListView控件中:
private void ShowXML() //显示xml数据
{
string path = "filesAutoxml"; //xml的文件位置
XmlDocument xmlDoc = new XmlDocument();
XmlReaderSettings settings = new XmlReaderSettings();
settingsIgnoreComments = true; //忽略xml文档中的注释
XmlReader reader = XmlReaderCreate(path, settings);
xmlDocLoad(reader); //读取xml数据
XmlNode xn = xmlDocSelectSingleNode("filesauto");
XmlNodeList xnl = xnChildNodes;
List<FilesAuto> stsList = new List<FilesAuto>();
//循环遍历获取xml文档中的全部数据
foreach (XmlNode Xnl in xnl)
{
FilesAuto filesAuto = new FilesAuto();
XmlElement xe1 = (XmlElement)Xnl;
XmlNodeList xnl0 = xe1ChildNodes;
filesAutoFileType = xnl0Item(0)InnerText;
filesAutoFileState = xnl0Item(1)InnerText;
filesAutoFilePath = xnl0Item(2)InnerText;
filesAutoFileText = xnl0Item(3)InnerText;
ListViewItem list = listView1ItemsAdd(filesAutoFileType);
listSubItemsAdd(filesAutoFileState);
listSubItemsAdd(filesAutoFilePath);
listSubItemsAdd(filesAutoFileText);
}
readerClose(); //关闭读取流
}
使用方法:
private void Button6_Click(object sender, EventArgs e)
{
ShowXML();
}
效果图:
若有不足之处恳请大家指出改正
SystemDataDataSet ds = new SystemDataDataSet();
dsReadXml(ServerMapPath("~/sfdsxml"));
using SystemXml;
XmlDocument xmlDoc = new XmlDocument();
xmlDocLoad(ServerMapPath("这里是你的XML的地址"));
XmlNode cNodes = xmlDocSelectSingleNode("columns");
for (int i = 0; i < cNodesChildNodesCount; i++)
{
XmlNode c = cNodesChildNodes[i];
cAttributes["hidden"]Value; //这里就取到hidden的值
cAttributes["show"]Value; // 这里就取到show的值
}
field="name" 这个也是节点属性啊。
大哥,代码很详细了吧,给分,给分!!!!!!!
应该可以设置id,根据id获取值
不好意思啦!借用zhangmiger代码一下。
XmlDocument doc = new XmlDocument();
docLoad("//XMLFile1xml");
XmlNodeList nodes = docSelectNodes("/Dimap_Document/IMAGING_DATE/vertex");
foreach (XmlNode node in nodes)
{
if(nodeAttributes["id"]value=="v2"){
ConsoleWriteLine(nodeInnerText);
}
}
ConsoleRead();
XMLFile1xml文件的内容:
<xml version="10" encoding="utf-8" >
<Dimap_Document>
<IMAGING_DATE>
<vertex id="v1">
a
</vertex>
<vertex id="v2">
b
</vertex>
<vertex id="v3">
c
</vertex>
</IMAGING_DATE>
</Dimap_Document>
原因:节点概念模糊。
解释:XML第一行声明也为节点,如果下行为注释也是节点,再下行一般就是StarElement(开始元素)。同时readReadStartElement(); 前面必须有一次read()先读一次,以便确定当前指针指向哪个结点(元素)。
特别提醒:声明、注释、标签、属性、文本等都是结点。
写个循环嵌套可以把所有的value都取出来
不知道XmlNodeList xnl= xmlDocSelectNodes("struct/value");可不可以直接都取出来,没有试过。
以上就是关于C#如何读取xml文件内容并用listview控件显示全部的内容,包括:C#如何读取xml文件内容并用listview控件显示、C#怎样获取指定xml节点的路径、C#如何读取xml文件里面节点里面的属性信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)