当前位置:编程学习 > C#/ASP.NET >>

!急 c#读取 xml中CDDATA节点数据的问题

<?xml version="1.0" encoding="gbk" ?>

- <root>

- <![CDATA[ 程序 ]]>

</root>

以上是xml中的内容。现在想要使用visual c# 的窗口应该程序来读取其中的 CDDATA里面的值。 就是能读取出 程序

请问要什么操作呢?

答案:给你个查询XML的代码  你看看对你有帮助没

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
//using System.IO;
using System.Xml.XPath;

public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//xpath查询示例
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("App_Data/j2ee.xml"));

//根据绝对路径查找节点
//XmlNodeList list = doc.SelectNodes("/shop/book/author");
//XmlNode node= list.Item(0);
//TextBox1.Text = node.InnerText;

// xpath条件查询
//XmlNodeList list = doc.SelectNodes("/shop/book[price>10]/title");
//TextBox1.Text = list.Item(0).InnerText;

//根据属性查找[]表示属性查询
//XmlNodeList list = doc.SelectNodes("//price[@unit='¥']");
//TextBox1.Text = list.Item(0).InnerText;

//XmlNodeList list = doc.SelectNodes("//price[@unit]");
//TextBox1.Text = list.Item(0).InnerText;

//XmlNodeList list = doc.SelectNodes("//price[@*]");
//TextBox1.Text = list.Item(0).InnerText;

//列出所有的属性
//XmlNodeList list = doc.SelectNodes("/shop/book[0]");
// foreach (XmlNode node in list)
// TextBox1.Text += node.Name + "=" + node.Value;
//XmlAttribute node =(XmlAttribute)doc.SelectNodes("//@*");
//node.OwnerElement.Attributes.Remove(node);
//node.ParentNode.Attributes.Remove(node);
//XmlNodeList list = doc.SelectNodes("//author");
//foreach (XmlNode node in list)
//{
// if (node.InnerText.StartsWith("zhang"))
// node.Value = node.Value.Replace("zhang", "li");

//}

//XmlNodeList list = doc.SelectNodes("//@*");
//foreach (XmlNode node in list)
//{
// XmlAttribute attribute = (XmlAttribute)node;
// if(attribute.Value.Equals("RMB"))
// attribute.OwnerElement.Attributes.Remove(attribute);
//}

//XmlNodeList list = doc.SelectNodes("//@*");
//foreach (XmlNode node in list)
//{
// XmlAttribute attribute = (XmlAttribute)node;
// //if (attribute.Value.Equals("RMB"))
// attribute.OwnerElement.Attributes.Remove(attribute);
//}

XmlNodeList list = doc.SelectNodes("/shop");
XmlElement add=doc.CreateElement("mark");
add.InnerText="hello";
list.Item(0).InsertAfter(add, list.Item(0).ChildNodes[1]);


doc.Save(Server.MapPath("App_Data/j2ee.xml"));
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{

}
}
//<?xml version="1.0" encoding="UTF-8"?>
//<shop road="日照市海区路36号">
// <book unit="本">
// 100
// <title>jjj</title><author>zhangsan</author><price unit="RMB">60</price>
// </book>
// <food>
// <author>zhangsan</author>
// </food>
// <book>
// 200
// <title>k</title><author>zhangsi</author><price unit="RMB">100</price><pubdate>2009-01-01</pubdate>
// </book>
// <food>
// </food>
//</shop>
//<!--
//1. 查找任意路径下的author为zhang开始的元素,修改为li
//2 .查找属性值RMB的属性,并删除属性所属的元素。
//3 查找所有属性并将其删除。
//-->

你这个xml文件符合标准吗?

我记得XML至少要有一个根节点和一个子节点来着。

如果你改成下面的结构形式

<?xml version="1.0" encoding="gbk" ?>

<root>

<db>

<bz>

<![CDATA[ 程序 ]]>

</bz>

</db>

</root>

那么可以用下面的代码取出数据。

XmlDocument XmlDoc = new XmlDocument();
XmlDoc.Load(Server.MapPath(Request.ApplicationPath) + "\\data.xml");
XmlNode root = XmlDoc.DocumentElement;
XmlNodeList tmpNodes;
tmpNodes = root.SelectNodes("db");

txtbox1.Text = tmpNode.SelectSingleNode("bz").InnerText;

当然,这是我根据我的程序改变了你的xml文件结构,你可以按照我这个程序的思路去改程序来实现读取你的xml。

上一个:求一C#高手教我Web编程思想!!!!!!!!!!!!!!!!!!!!!!
下一个:C#怎么设置服务器空间button不刷新页面呢

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,