C#通用类实现 读取xml控制Asp.net控件输入信息长度(TextBox,FileUpload)

来源:互联网 发布:阿里巴巴股权结构 知乎 编辑:程序博客网 时间:2024/05/16 03:38
using System;
using System.Xml;
using System.Configuration;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;



namespace XMLSize
{
    
public struct strRestric 
    {
        
public string msgPage;        
        
public string msgPrompt;    
        
public int size;            
    }

    
public class XmlRestrict
    {
        
public static strRestric res;
        
        
public XmlRestrict()
        {            
            res.msgPage
="";
            res.msgPrompt
="";
            res.size
=0;
        }

        
public static object Restrict(string xmlPathName,string nodeID,strRestric res)
        {    
            
int NodeNum=1;
            
string path="";
            path 
=ConfigurationSettings.AppSettings.Get(xmlPathName).ToString();
            path
+="Restrict.xml";    
            
try
            {
                XmlDocument xmlDoc
=new XmlDocument(); 
                xmlDoc.Load(path); 
                XmlNodeList nodeList
=xmlDoc.SelectSingleNode("Tree").ChildNodes;
        
                
foreach(XmlNode xn in nodeList)
                { 
                    XmlElement xe
=(XmlElement)xn;

                    
if(xe.Name=="Node"
                    { 
                        XmlNodeList nls
=xe.ChildNodes;
                        
foreach(XmlNode xn1 in nls)
                        { 
                            XmlElement xe2
=(XmlElement)xn1; 
                            
if(xe2.Name=="PageId")
                            {   
                                
if(xe2.InnerText==nodeID)
                                {
                                    XmlNode xnChild
=(XmlNode)xe2;
                                    XmlNode child
=xnChild.ParentNode.ChildNodes[NodeNum+1];
                                    XmlElement xeChild
=(XmlElement)child;
                                    
string Id=xeChild.GetAttribute("value");                    
                                    
int Pid=int.Parse(Id);
                                    res.msgPage
=child.InnerText.ToString();    
                                    res.msgPrompt
=xnChild.ParentNode.ChildNodes[NodeNum+2].InnerText.ToString();
                                    res.size
=Pid;
                                    
return res;
                                }
                                
break;
                            }     
                        } 
                    } 
                } 
            }
            
catch
            {}
            
return null;
            
        }
        
页面内调用
private void Page_Load(object sender, System.EventArgs e)
        {

            strMsg
="";

            
///////////////////////////////////////////////////////////////////////////////
            object obj;
            obj
=XMLSize.XmlRestrict.Restrict("webPath","Notice_Login_txtContent",XmlRestrict.res);
            XMLSize.XmlRestrict.res
=(strRestric)obj;

            
string msgContent=XmlRestrict.res.msgPage;
            
string msgPrompt=XmlRestrict.res.msgPrompt;
            
int txtContentSize=XmlRestrict.res.size;

            
this.lblTxt.Text=msgContent;
            
this.txtContent.MaxLength=txtContentSize;
            
this.strMsg=msgPrompt;
            
            
//////////////////////////////////////////////////////////////////////////////


        }

 

XML文件

<?xml version="1.0" encoding="utf-8" ?>


<Tree>

    
<Node>
        
<Name></Name>
        
<PageId>Notice_Login_txtContent</PageId>
        
<Control value="5"></Control>
        
<Message></Message>
    
</Node>
        <Node>
        
<Name></Name>
        
<PageId></PageId>
        
<Control value="5"></Control>
        
<Message></Message>
    
</Node>

</Tree>
原创粉丝点击