添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
紧张的红金鱼  ·  android.os.BadParcelab ...·  1 月前    · 
酷酷的牛腩  ·  使用 Python 和 Boto3 对 ...·  4 天前    · 
好帅的草稿本  ·  [Day 11] Angular 2 ...·  1 年前    · 
光明磊落的杯子  ·  C day 2 - Just_Elyon ...·  2 年前    · 
虽然vs.net2.0为我们提供了

ConfigurationManager.AppSettings["..."];
ConfigurationManager.ConnectionStrings["..."];

这样方便快捷的方法来访问web.config中的AppSettings和ConnectionStrings这二个节的内容

但对于其它节,特别是用户自定义节的访问却并不方便,比如web.config中有这么一段内容

<?xml version="1.0"?>
<configuration>

<system.webServer>
<validation validateIntegratedModeConfiguration="false" myname="Jimmy"/>
</system.webServer>
</configuration>

我们要访问system.webServer下的validation节点中的validateIntegratedModeConfiguration或myname的属性值,就远远没有象ConfigurationManager.AppSettings这样来得方便,其实web.config是一个标准的xml,我们完全可以按xml的xpath语句来检索xml中的任何内容,这里我提供了一个示例,为了方便操作xml,把对xml的一些操作方法封装到了一个类里,以下是这个类的主要代码

using System;
using System.Xml;
using System.Configuration;
using System.Data;
using System.Collections;
using System.IO;

namespace JIMMY.TOOLS
... {
/**/ /// <summary>
/// Description:XML封装操作类1.04版
/// Author:jimmy mail:yjmyzz@126.com Date:2006-10-28
/// </summary>

public class XmlControl
... {
protected string strXmlFile;
protected XmlDocument objXmlDoc = new XmlDocument();

public XmlControl( string XmlFile, Boolean bOverWrite, string sRoot)
... {
try
... {
// 如果覆盖模式,则强行创建一个xml文档
if (bOverWrite)
... {
objXmlDoc.AppendChild(objXmlDoc.CreateXmlDeclaration(
" 1.0 " , " utf-8 " , null )); // 设置xml的版本,格式信息
objXmlDoc.AppendChild(objXmlDoc.CreateElement( "" , sRoot, "" )); // 创建根元素
objXmlDoc.Save(XmlFile); // 保存
}

else // 否则,检查文件是否存在,不存在则创建
... {
if ( ! (File.Exists(XmlFile)))
... {
objXmlDoc.AppendChild(objXmlDoc.CreateXmlDeclaration(
" 1.0 " , " utf-8 " , null ));
objXmlDoc.AppendChild(objXmlDoc.CreateElement(
"" , sRoot, "" ));
objXmlDoc.Save(XmlFile);
}

}

objXmlDoc.Load(XmlFile);
}

catch (System.Exception ex)
... {
throw ex;
}

strXmlFile
= XmlFile;
}


/**/ /// <summary>
/// 根据xPath值,返回xPath下的所有下级子结节到一个DataView
/// </summary>
/// <param name="XmlPathNode"> xPath值 </param>
/// <returns> 有数据则返回DataView,否则返回null </returns>

public DataView GetData( string XmlPathNode)
... {
// 查找数据。返回一个DataView
DataSet ds = new DataSet();
try
... {
StringReader read
= new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
ds.ReadXml(read);
return ds.Tables[ 0 ].DefaultView;
}

catch
... {
// throw;
return null ;
}

}


// ...为了不至于把代码弄得太复杂,其它方法这里略去
}


}


回到正题,以下是访问system.webServer下的validation节点中的validateIntegratedModeConfiguration或myname的属性值的代码

当然用先using JIMMY.TOOLS 以下是主要代码

XmlControl xc = new XmlControl(Server.MapPath( " ~/web.config " ), false , " configuration " );

DataView dv
= xc.GetData( " configuration/system.webServer/validation " );

Response.Write(dv[
0 ][ 0 ].ToString() + " <br/> " ); // 输出validateIntegratedModeConfiguration的属性值

Response.Write(dv[
0 ][ 1 ].ToString()); // 输出myname的属性值

甚至还可以将结果绑定到一个GridView上

GridView1.DataSource = dv;

GridView1.DataBind();

Spring 源码阅读 10:Spring 中自定义的 EntityResolver 是如何获取 Spring XML 配置文件需要的约束文件的
这篇是为了填 [Spring 源码阅读 07:加载 BeanDefinition 的过程(资源加载阶段)]中留的一个坑
1#Spring读取配置文件 ##Document 在XmlBeanDefinitionReader.doLoadBeanDefinitions(InputSource inputSource, Resource resource)方法中将Xml文件转换成Document对象;Document doc = doLoadDocument(inputSource, resource);
【Unity3D日常】使用Unity3D读取Json、XML、Excel文件
在日常开发中会遇到很多读取文件的操作,最常见的类型还是Json、txt、XML、Excel文件,那么今天就分享一下如何读取这几类文件
Spring源码(二-3)-XML文件的读取-factory-method的使用
Spring 可以通过 factory-method 实例化对象。factory-method方式是 Spirng 实例对象的方式之一。
手写RPC框架第一章《自定义配置xml》
本案例通过三个章节来实现一共简单的rpc框架,用于深入学习rpc框架是如何通信的,当前章节主要介绍如何自定义xml文件并进行解析。想解析自定义的xml首先定义自己的xsd文件,并且实现spring的NamespaceHandlerSupport、BeanDefinitionParser,两个方法进行处理。
手写类似dubbo的rpc框架第一章《自定义配置xml》
本案例通过三个章节来实现一共简单的rpc框架,用于深入学习rpc框架是如何通信的,当前章节主要介绍如何自定义xml文件并进行解析。想解析自定义的xml首先定义自己的xsd文件,并且实现spring的NamespaceHandlerSupport、BeanDefinitionParser,两个方法进行处理。
SAP WebIDE 是如何加载SAP UI5里自定义的XML view的 - JerryMaster.view.xml
Created by Jerry Wang, last modified on Nov 08, 2015 Route _routeMatched Signal SignalBinding _oConfig Customize your xml view file name: