读取asp.net中的xml节点 [英] read a xml node in asp.net

查看:61
本文介绍了读取asp.net中的xml节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我如何才能将xml子节点的名称检索到数组列表中.我有一个数组列表,如:

how can i retrieve a name of a xml child node into array list. i have a array list like:

<items>
  <item1 id="1"> Text </item1>
  <item2 id="2"> Text </item2>
</items>


我希望ArrayList仅包含子节点名称,例如:item1,item2.请帮助我..


I want ArrayList contain only child node name like: item1, item2. please help me in this..

推荐答案

您可以使用XMLDocument或XMLReader类,让我们看一下XMLDocuemnt的示例

you can use XMLDocument or XMLReader class, let see the example of XMLDocuemnt

Arraylist ArrList = new Arraylist(); 
System.XML.XMLDocument objDom = new System.XML.XMLDocument();
objDom.load(//xml file path);
xmlNodeList XNList = objDom.getElementByTagName("items");
for each (xmlNode XN in XNList)
{
   for(int i=0; i< XN.childNodes.count; i++)
   {
      ArrayList.Add(XN.childNodes[i].Name);
   }
}


字符串strCategoryId;
XmlDocument oXMLDoc = null;
XmlNodeList oXMLNodeList;

试试
{
//..这是您的连接方法,Admin是在其中定义方法的类Name

oXMLDoc = oAdmin.GetPartyDetails();
oXMLNodeList = oXMLDoc.GetElementsByTagName("ABC");
如果((oXMLDoc.ChildNodes.Count> = 1)&&(oXMLNodeList.Count> 0))
{

cboParty.Items.Add(new ListItem(-选择类别-","0"));
for(int intLoop = 0; intLoop< = oXMLNodeList.Count-1; intLoop ++)
{
strCategoryId = oXMLDoc.GetElementsByTagName("ABC").Item(intLoop).InnerText;
cboParty.Items.Add(new ListItem(strCategoryId));
}
}
其他
{

ABC.Items.Add(new ListItem(无类别,请添加."));
}
string strCategoryId;
XmlDocument oXMLDoc = null;
XmlNodeList oXMLNodeList;

try
{
//..this is your connection method, Admin is class Name in which method is define

oXMLDoc = oAdmin.GetPartyDetails();
oXMLNodeList = oXMLDoc.GetElementsByTagName("ABC");
if ((oXMLDoc.ChildNodes.Count >= 1) && (oXMLNodeList.Count > 0))
{

cboParty.Items.Add(new ListItem("-- Select Category --", "0"));
for (int intLoop = 0; intLoop <= oXMLNodeList.Count - 1; intLoop++)
{
strCategoryId = oXMLDoc.GetElementsByTagName("ABC").Item(intLoop).InnerText;
cboParty.Items.Add(new ListItem(strCategoryId));
}
}
else
{

ABC.Items.Add(new ListItem("No Category, Please add."));
}


通过c#asp .net创建,读取和写入xml文件

//default.cs文件

create, read and write xml file through c# asp .net

//default.cs file

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Xml;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            Xml_Insert();
            Xml_update();
        }
    }

    public void Xml_Insert()
    {
       
            XmlDocument xmlDoc = new XmlDocument();

            // Write down the XML declaration
            XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);

            // Create the root element
            XmlElement rootNode = xmlDoc.CreateElement("CategoryList");
            xmlDoc.InsertBefore(xmlDeclaration, xmlDoc.DocumentElement);
            xmlDoc.AppendChild(rootNode);

            // Create a new <Category> element and add it to the root node
            XmlElement parentNode = xmlDoc.CreateElement("Category");

            // Set attribute name and value!
            parentNode.SetAttribute("ID", "01");

            xmlDoc.DocumentElement.PrependChild(parentNode);

            // Create the required nodes
            XmlElement mainNode = xmlDoc.CreateElement("MainCategory");
            XmlElement descNode = xmlDoc.CreateElement("Description");
            XmlElement activeNode = xmlDoc.CreateElement("Active");

            // retrieve the text 
            XmlText categoryText = xmlDoc.CreateTextNode("XML");
            XmlText descText = xmlDoc.CreateTextNode("This is a list my XML articles.");
            XmlText activeText = xmlDoc.CreateTextNode("true");

            // append the nodes to the parentNode without the value
            parentNode.AppendChild(mainNode);
            parentNode.AppendChild(descNode);
            parentNode.AppendChild(activeNode);

            // save the value of the fields into the nodes
            mainNode.AppendChild(categoryText);
            descNode.AppendChild(descText);
            activeNode.AppendChild(activeText);

            // Save to the XML file
            xmlDoc.Save(Server.MapPath("categories.xml"));

            Response.Write("XML file created");
       
    }
    public void Xml_update()
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath("categories.xml"));

        XmlNodeList nodeList = xmlDoc.SelectNodes("/CategoryList/Category[@ID=''01'']");
        nodeList[0].ChildNodes[0].InnerText = "Deepak";
        nodeList[0].ChildNodes[1].InnerText = "Pooja";
        nodeList[0].ChildNodes[2].InnerText = "Ashok";

        // Don''t forget to save the file
        xmlDoc.Save(Server.MapPath("categories.xml"));
        Response.Write("XML File updated!");
    }
}



//default.aspx



//default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    </form>
</body>
</html>







//xml文件







// xml file

<?xml version="1.0" encoding="utf-8"?>
<CategoryList>
  <Category ID="01">
    <MainCategory>Deepak</MainCategory>
    <Description>Pooja</Description>
    <Active>Ashok</Active>
  </Category>
</CategoryList>


这篇关于读取asp.net中的xml节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆