学习手记--怎样用c#处理xml文档.

用c#处理xml文档.

本文章讲叙了怎样在c#里处理xml文档,都是些比较基本的。
首先,我们先自建一个xml文档,如下:

<?xml version="1.0" encoding="UTF-8"?>
<peoplelist>
  <person>
    <name>Tom Stafford</name>
    <title>CFO</title>
  </person>
  <person>
    <name>Jane Goodwill</name>
    <title>CEO</title>
  </person>
  <person>
    <name>Tim Daly</name>
    <title>CTO</title>
    <title2>CTO0</title2>
  </person>
  <person>
    <name>John Graver</name>
    <title>CSO</title>
  </person>
</peoplelist>

将其保存为:people.xml,:)

(1)查找XML文档里的指定节点
例如:要查找姓名为'Tim Daly'的用户的<title2>,则具体程序如下.
----
<%@page language="C#"%>
<%@import namespace="System.Xml"%>
<%@import namespace="System.Xml.Xsl"%>
<%@import namespace="System.Xml.XPath"%>
<script language="c#" runat="server">
void page_load(Object obj,EventArgs e)
{
string xmlfile="people.xml",xpath;
xpath=Server.MapPath(xmlfile);
XmlDocument myDoc = new XmlDocument(); //定义一个XmlDocument对象。
myDoc.Load(xpath);
message.Text=myDoc.SelectSingleNode ("//person[name='Tim Daly']").ChildNodes.Item(2).InnerText;}
</script>
<asp:label id="message" forecolor="red" runat="server"/>

解释:

其中//代表里面任意层的子节点。这样可以很快就找到所要的东西。
SelectSingleNode是找到一个单一的节点,SelectNodes可以找到许多节点


(2)用XML文档填充列表框,这里只用到<name>节点.

<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Collections" %>
<%@ Import Namespace="System.Xml" %>
<html>
<head>
<script language="C#" runat="server">
private void Page_Load(Object sender, EventArgs e)
{
   if (!IsPostBack)
  {
    ArrayList values = new ArrayList();//将其当作数据源
    XmlDocument doc = new XmlDocument();//表示XML文档
    doc.Load(Server.MapPath("people.xml"));

    //返回一个XmlNodeList集合,包含与指定名称匹配的所有子代元素列表
    XmlNodeList elemList = doc.GetElementsByTagName("name");//System.Xml 命名空间

    for (int i=0; i < elemList.Count; i++)
    {  
     values.Add (elemList[i].InnerXml);
    } 
     ListBox1.DataSource = values;
     ListBox1.DataBind();
  }
}

//得到列表项,被选中项的文本
private void SubmitBtn_Click(Object sender, EventArgs e)
{
  if(ListBox1.SelectedIndex>-1)
       Label1.Text = "Selected Option: " + ListBox1.SelectedItem.Text + "<p>";
}
</script>
</head>
<body>
   <form runat=server>
     <h3>Data Binding ListBox</h3>
     <asp:Label id="Label1" font-name="Verdana" font-size="10pt" runat="server"/>
     <asp:ListBox id="ListBox1" SelectionMode="Single" Rows="1" runat="server"/>
     <asp:button id="Button1" Text="Submit" OnClick="SubmitBtn_Click" runat="server"/>
   </form>
</body>
</html>
==============================================
(3)把XML文档通过DataSet读入到Repeater中.
你也可把它读入到DataSet.原理是一样的.
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Page Language="C#"  %>
<html>
<head>
<title>读入到Repeater</title>
<script language="C#" runat=server>
public void Page_Load(Object obj,EventArgs e)

  string xpath="db/people.xml" ; 
  try
  {
    DataSet ds= new DataSet();
    FileStream fs= new FileStream(Server.MapPath(xpath),FileMode.Open,FileAccess.Read,FileShare.ReadWrite) ;
    ds.ReadXml(new StreamReader(fs));
    fs.Close();
    Trace.Warn("表记录数",Convert.ToString(ds.Tables[0].Rows.Count));
   
    MyDataList.DataSource=ds.Tables[0].DefaultView;
    MyDataList.DataBind();
  }
  catch (Exception ed)
  {
    Response.Write("<font color=#FF0000>"+ed.ToString()+"</font>") ;
  }
}

</script>
</head> 
<body >
<ASP:Repeater id="MyDataList" runat="server">
<headertemplate>
    <h5> Viewer Details </h5>
</headertemplate>
<itemtemplate>
<br>
<table class="mainheads" width="60%" style="font: 8pt verdana" >
<tr style="background-color:#FFFFCC"> 
<td>name:</td>
<td><%# DataBinder.Eval(Container.DataItem, "name") %></td>
</tr>
<tr style="background-color:#FFFFCC">
<td>title:</td>
<td><%# DataBinder.Eval(Container.DataItem, "title")%></td>
</tr>
<tr style="background-color:#FFFFCC">
<td>title2:</td>
<td><%# DataBinder.Eval(Container.DataItem, "title2") %></td>
</tr>
</table><br>
</itemtemplate>
</ASP:Repeater>
</body>
</html>

 

---------
(4)把Repeater中的数据保存到Xml中,同理,你也可用于DataSet.
,例子中增加了新的一行,并把编辑后的结果保存到XML
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Page Language="C#"  Trace="true"%>
<html>
<head>
<title>Saurabh's XML Counter Script</title>
<script language="C#" runat=server>
 public void Page_Load(Object obj,EventArgs e)
 {
   string dataFile="db/people.xml" ; 
   if(!Page.IsPostBack)
  {
   try {
     DataSet ds= new DataSet();
     FileStream fint;
     fint= new FileStream(Server.MapPath(dataFile), FileMode.Open, FileAccess.Read, FileShare.ReadWrite) ;
     ds.ReadXml(fint);
     fint.Close(); 
   
     if(Session["counter"]==null)
     {
       DataRow DR=ds.Tables[0].NewRow();
      
       DR["name"]="myname";
       DR["title"]="test";
       DR["title2"]="test2";

       ds.Tables[0].Rows.Add(DR);
       FileStream fOut ;
       fOut = new FileStream(Server.MapPath(dataFile), FileMode.Open, FileAccess.Write, FileShare.ReadWrite) ;
       ds.WriteXml(fOut, XmlWriteMode.WriteSchema);
       fOut.Close();
       Session["counter"]="Set" ;
     }
     Trace.Warn("表记录数",ds.Tables[0].Rows.Count.ToString());
    }
    catch(Exception edd)
    {
      Response.Write("<font color=#FF0000>"+edd.ToString()+"</font>") ;
    }
  }
}

</script>
</body>
</html>

----------------------
(5)读取URL里面的XML数据
C#读取URL里面的XML数据问题,正常情况下,都是读取静态的XML文件,但是在证券领域里面,XML数据是随时更新的。
比如第三方想我们提供XML数据,我们给第二方作开发,而第三提供给我们的是一个URL,这个URL是XML格式的内容,包含着我们要得数据。
这里例子是读取CSDN上的URL.
using System;
using System.Xml;
namespace ConsoleApplication5
{
  class Class1
  {
   [STAThread]
    static void Main(string[] args)
    {
     XmlDocument doc = new XmlDocument();
     doc.Load("http://www.csdn.net/expert/topic/1094/1094085.xml?temp=.9642145");
     doc.Save(Console.Out );
     }
   }
}
这样,该C#程序就会把从远程ASP页面传过来的XML显示在Console.Out(控制台的输出)了.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Infineon英飞凌高边开关是一款高性能、高可靠性的电子器件,广泛应用于工业自动化、汽车电子、医疗设备等领域。对于工程师而言,掌握Infineon英飞凌高边开关的开发应用技巧尤为重要。 首先,为了实现高效的电路设计,需要对电压、电流、功率等相关参数进行充分的考虑。以Infineon英飞凌高边开关为例,在驱动方面要注意输出引脚的电流、驱动电压范围与驱动能力等参数。在控制方面,需要注意芯片内的保护电路、EAP、DAP等控制引脚的设置,以及芯片内部的保护逻辑。 其次,应用手记中对电路的阻容滤波、脉宽调制、电感耦合等方案进行了详细的介绍。在不同的应用场合下,选择不同的方案可以最大程度地提高电路性能。此外,通过手记还可以掌握如何设计稳定的启动电路、提高系统稳定性的解决方案等技巧。 最后,手记中还提供了Infineon英飞凌高边开关运用到的各种应用案例。如在汽车电子领域,Infineon英飞凌高边开关可以应用于驱动负载、照明、电动窗、电动座椅等部件;在医疗设备领域,可以应用于低噪音电源、嵌入式控制器等方案中。这些案例不仅可以为工程师们提供借鉴,还可以让工程师们更好地了解Infineon英飞凌高边开关的应用实际情况,为工程项目的实现提供有价值的经验。 ### 回答2: Infineon英飞凌的高边开关(high-side switch)是一种电力转换器,适用于断开或关闭直流电源电路中正电源电流的控制。其主要作用是可以控制电路开关状态,从而实现电路的高效率和稳定性。应用范围广泛,包括汽车电子、工业控制、灯光控制、家电等领域。 Infineon英飞凌的高边开关具有多种特点,例如高可靠性、低开关损耗、宽电源电压范围、集成过温保护等。其开关管的驱动也非常重要,可由电压控制、电流控制或者组合控制实现。通过控制信号的变化实现开关状态的切换,从而达到灵活性和可靠性的同时提高了效率。 在具体应用中,使用Infineon英飞凌的高边开关需要遵循一定的设计流程和注意事项。设计流程包括系统需求分析、数据手册评估、选型与确认、电路设计与布局、电路实现及测试等。在注意事项方面,需要特别注意工作温度、过压、过流等问题,同时应选择合适的维护和保养方法,以确保高边开关的可靠性和稳定性。 总之,Infineon英飞凌的高边开关是一种可靠性高、效率好的电力转换器,广泛应用于各个领域。在具体应用时,需要遵循一定的设计流程和注意事项,以确保其高效、稳定、可靠地运行。 ### 回答3: Infineon英飞凌高边开关是一种高性能的晶体管,常用于汽车电子、工业控制、电源等领域。其特点是能够承受高压输入,并且具备快速开关能力。 在汽车电子领域,Infineon英飞凌高边开关常常用于控制车灯、制动系统、空调等设备。通过对高边控制电路的设计,可以实现对这些设备的高效控制和保护。 在工业控制领域,Infineon英飞凌高边开关常用于马达控制、电热器控制等场景。在这些场景中,高边开关能够提供更加高效的电流控制,并且能够承受大电流输入。 在电源领域,Infineon英飞凌高边开关则可以用于直流到直流的转换。通过这种方式,可以实现更加高效的能量转换,减少能量损耗。 总之,Infineon英飞凌高边开关在各个领域中的应用非常广泛。通过对其特性和控制技术的深入研究,可以实现更加高效、安全、稳定的电子设备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值