asp.net如何获取到xml文件的节点值

asp.net如何获取到xml文件的节点值,第1张

//加载参数Xml

XmlDocument xmlParm = new XmlDocument();

xmlParmLoad(XMLString);

XmlNode xnParams = xmlParmSelectSingleNode("节点的位置");

string nodeValue = xnParamsValue;

*** 作xml文件的类是

using

SystemXml;

中的

XmlDocument

以下是一个简单的例子

XmlDocument

xml

=

new

XmlDocument();//新建xml对象

xmlLoad("xml文件路径");

//载入xml文件路径

XmlNode

node

=

xmlFirstChild;

//获取文档的第一个节点

foreach

(XmlNode

n

in

nodeChildNodes)

{

string

v

=

nValue;

//节点的值

string

v1

=

nAttributes["属性名"]Value;

//节点属性值

string

v2

=

n["元素名"]Value;

//元素值

string

v3

=

n["元素名"]Attributes["属性名"]Value;

//元素属性值

}

/// <summary>

/// XmlDocument扩展类

///

/// 目的:用于优化和减少代码书写量

/// 备注:Element 译为:元素

/// Document 译为:文档

/// Node 译为:节点

/// </summary>

public class XmlDocumentExtender : XmlDocument

{

public XmlDocumentExtender()

: base()

{

}

#region 扩展的构造函数

#if NET1

public XmlDocumentExtender(XmlNameTable nt)

: base(new XmlImplementation())

{

}

#else

public XmlDocumentExtender(XmlNameTable nt)

: base(new XmlImplementation(nt))

{

}

#endif

#endregion

/// <summary>

/// 加载的文件名(含路径)

/// </summary>

/// <param name="filename"></param>

public override void Load(string filename)

{

if (MauniteCommonFileUtilsFileExists(filename))

{

baseLoad(filename);

}

else

{

throw new Exception("文件: " + filename + " 不存在!");

}

}

/// <summary>

/// 在指定的Xml元素下,添加子Xml元素

/// </summary>

/// <param name="xmlElement">被追加子元素的Xml元素</param>

/// <param name="childElementName">要添加的Xml元素名称</param>

/// <param name="childElementValue">要添加的Xml元素值</param>

/// <returns></returns>

public bool AppendChildElementByNameValue(ref XmlElement xmlElement, string childElementName, object childElementValue)

{

return AppendChildElementByNameValue(ref xmlElement, childElementName, childElementValue, false);

}

/// <summary>

/// 在指定的Xml元素下,添加子Xml元素

/// </summary>

/// <param name="xmlElement">被追加子元素的Xml元素</param>

/// <param name="childElementName">要添加的Xml元素名称</param>

/// <param name="childElementValue">要添加的Xml元素值</param>

/// <param name="IsCDataSection">是否是CDataSection类型的子元素</param>

/// <returns></returns>

public bool AppendChildElementByNameValue(ref XmlElement xmlElement, string childElementName, object childElementValue, bool IsCDataSection)

{

if ((xmlElement != null) && (xmlElementOwnerDocument != null))

{

//是否是CData类型Xml元素

if (IsCDataSection)

{

XmlCDataSection tempdata = xmlElementOwnerDocumentCreateCDataSection(childElementName);

tempdataInnerText = FiltrateControlCharacter(childElementValueToString());

XmlElement childXmlElement = xmlElementOwnerDocumentCreateElement(childElementName);

childXmlElementAppendChild(tempdata);

xmlElementAppendChild(childXmlElement);

}

else

{

XmlElement childXmlElement = xmlElementOwnerDocumentCreateElement(childElementName);

childXmlElementInnerText = FiltrateControlCharacter(childElementValueToString());

xmlElementAppendChild(childXmlElement);

}

return true;

}

else

{

return false;

}

}

/// <summary>

/// 在指定的Xml结点下,添加子Xml元素

/// </summary>

/// <param name="xmlElement">被追加子元素的Xml节点</param>

/// <param name="childElementName">要添加的Xml元素名称</param>

/// <param name="childElementValue">要添加的Xml元素值</param>

/// <returns></returns>

public bool AppendChildElementByNameValue(ref XmlNode xmlNode, string childElementName, object childElementValue)

{

return AppendChildElementByNameValue(ref xmlNode, childElementName, childElementValue, false);

}

/// <summary>

/// 在指定的Xml结点下,添加子Xml元素

/// </summary>

/// <param name="xmlElement">被追加子元素的Xml节点</param>

/// <param name="childElementName">要添加的Xml元素名称</param>

/// <param name="childElementValue">要添加的Xml元素值</param>

/// <param name="IsCDataSection">是否是CDataSection类型的子元素</param>

/// <returns></returns>

public bool AppendChildElementByNameValue(ref XmlNode xmlNode, string childElementName, object childElementValue, bool IsCDataSection)

{

if ((xmlNode != null) && (xmlNodeOwnerDocument != null))

{

//是否是CData类型Xml结点

if (IsCDataSection)

{

XmlCDataSection tempdata = xmlNodeOwnerDocumentCreateCDataSection(childElementName);

tempdataInnerText = FiltrateControlCharacter(childElementValueToString());

XmlElement childXmlElement = xmlNodeOwnerDocumentCreateElement(childElementName);

childXmlElementAppendChild(tempdata);

xmlNodeAppendChild(childXmlElement);

}

else

{

XmlElement childXmlElement = xmlNodeOwnerDocumentCreateElement(childElementName);

childXmlElementInnerText = FiltrateControlCharacter(childElementValueToString());

xmlNodeAppendChild(childXmlElement);

}

return true;

}

else

{

return false;

}

}

/// <summary>

/// 通过数据行向当前XML元素下追加子元素

/// </summary>

/// <param name="xmlElement">被追加子元素的Xml元素</param>

/// <param name="dcc">当前数据表中的列集合</param>

/// <param name="dr">当前行数据</param>

/// <returns></returns>

public bool AppendChildElementByDataRow(ref XmlElement xmlElement, DataColumnCollection dcc, DataRow dr)

{

return AppendChildElementByDataRow(ref xmlElement, dcc, dr, null);

}

/// <summary>

/// 通过数据行向当前XML元素下追加子元素

/// </summary>

/// <param name="xmlElement">被追加子元素的Xml元素</param>

/// <param name="dcc">当前数据表中的列集合</param>

/// <param name="dr">当前行数据</param>

/// <param name="removecols">不会被追加的列名</param>

/// <returns></returns>

public bool AppendChildElementByDataRow(ref XmlElement xmlElement, DataColumnCollection dcc, DataRow dr, string removecols)

{

if((xmlElement != null)&&(xmlElementOwnerDocument != null))

{

foreach (DataColumn dc in dcc)

{

if ((removecols == null) ||

(removecols == "") ||

(("," + removecols + ",")ToLower()IndexOf("," + dcCaptionToLower() + ",") < 0))

{

XmlElement tempElement = xmlElementOwnerDocumentCreateElement(dcCaption);

tempElementInnerText = FiltrateControlCharacter(dr[dcCaption]ToString()Trim());

xmlElementAppendChild(tempElement);

}

}

return true;

}

else

{

return false;

}

}

/// <summary>

/// 实始化节点, 当节点存在则清除当前路径下的所有子结点, 如不存在则直接创建该结点

/// </summary>

/// <param name="xmlpath"></param>

/// <returns></returns>

public XmlNode InitializeNode(string xmlpath)

{

XmlNode xmlNode = thisSelectSingleNode(xmlpath);

if (xmlNode != null)

{

xmlNodeRemoveAll();

}

else

{

xmlNode = CreateNode(xmlpath);

}

return xmlNode;

}

/// <summary>

/// 删除指定路径下面的所有子结点和自身

/// </summary>

/// <param name="xmlpath">指定路径</param>

public void RemoveNodeAndChildNode(string xmlpath)

{

XmlNodeList xmlNodeList = thisSelectNodes(xmlpath);

if (xmlNodeListCount > 0)

{

foreach (XmlNode xn in xmlNodeList)

{

xnRemoveAll();

xnParentNodeRemoveChild(xn);

}

}

}

/// <summary>

/// 创建指定路径下的节点

/// </summary>

/// <param name="xmlpath">节点路径</param>

/// <returns></returns>

public XmlNode CreateNode(string xmlpath)

{

string[] xpathArray = xmlpathSplit('/');

string root = "";

XmlNode parentNode = this;

//建立相关节点

for (int i = 1; i < xpathArrayLength; i++)

{

XmlNode node = thisSelectSingleNode(root + "/" + xpathArray[i]);

// 如果当前路径不存在则建立,否则设置当前路径到它的子路径上

if (node == null)

{

XmlElement newElement = thisCreateElement(xpathArray[i]);

parentNodeAppendChild(newElement);

}

//设置低一级的路径

root = root + "/" + xpathArray[i];

parentNode = thisSelectSingleNode(root);

}

return parentNode;

}

/// <summary>

/// 得到指定路径的节点值

/// </summary>

/// <param name="xmlnode">要查找节点</param>

/// <param name="path">指定路径</param>

/// <returns></returns>

public string GetSingleNodeValue(XmlNode xmlnode, string path)

{

if (xmlnode == null)

{

return null;

}

if (xmlnodeSelectSingleNode(path) != null)

{

if (xmlnodeSelectSingleNode(path)LastChild != null)

{

return xmlnodeSelectSingleNode(path)LastChildValue;

}

else

{

return "";

}

}

return null;

}

/// <summary>

/// 过滤控制字符,包括0x00 - 0x08,0x0b - 0x0c,0x0e - 0x1f

/// </summary>

/// <param name="content">要过滤的内容</param>

/// <returns>过滤后的内容</returns>

private string FiltrateControlCharacter(string content)

{

return RegexReplace(content, "[\x00-\x08|\x0b-\x0c|\x0e-\x1f]", "");

}

}

<%

'ASP中的VBScript并不是VB,不过应该区别不大

‘定义变量

Dim oXml

Dim arrText, arrValue, sFGF

sFGF = "$$"

’创建XMLDOM对象

Set oXml = ServerCreateObject("MicrosoftXMLDOM")

‘设置异步读取文件

oXmlasync=False

’读取文件

oXmlload ServerMapPath("aulxml")

‘设置变量 节点类型的

Dim oNodes, oNode

’得到节点集合放入oNodes变量中

‘ SelectNodes()方法接受一个XPath参数可以搜索到你想要的节点集合

‘这里的 XPath是 "//screen/list/item"

Set oNodes = oXmldocumentElementSelectNodes("//screen/list/item")

‘迭代

For Each oNode In oNodes

’字符串拼接,因为VBScript Array没push()方法

arrText = arrText & oNodegetAttributeNode("labelText")nodeValue & sFGF

arrValue = arrValue & oNodegetAttributeNode("value")nodeValue & sFGF

Next

' 去掉最后的分隔符后再用Split()将字符串转换为数组得到结果

If arrText <> "" Then

arrText = Mid(arrText, 1, Len(arrText)-Len(sFGF))

arrText = Split(arrText, sFGF)

End If

If arrValue <> "" Then

arrValue = Mid(arrValue, 1, Len(arrValue)-Len(sFGF))

arrValue = Split(arrValue, sFGF)

End if

Set oNodes = Nothing

Set oXml = Nothing

' arrText, arrValue 就是结果了

‘ 输出一下测试

ResponseWrite arrValue(0)

' 上面的是ASP服务器端读取xml的代码。给你参考

%>

//xmlFile是xml文件,nodeName是节点名,attributeName是节点的属性名,因为节点名是可以重复的,所以用list存放返回值

public List<string> GetAttribute(string xmlFile, string nodeName, string attributeName)

{

List<string> retList = new List<string>();

XmlDocument xx = new XmlDocument();

xxLoad(xmlFile);

XmlNodeList xxList = xxGetElementsByTagName(nodeName);

foreach (XmlNode xxNode in xxList)

{

retListAdd(xxNodeAttributes[attributeName]Value);

}

return retList;

}

php是可以读取读取xml文件的。同时也可以遍历节点。网上有很多方法。你可以百度下。这里给你贴代码的话有很多代码。

举例:

有个名字为axml的文件

。内容为:

xml

version=”10″

encoding=”gb2312″

111

2222

3333

读取:

php

$xml

=

new

domdocument();

$xml-

load('axml');

foreach($xml->getelementsbytagname('list')

as

$list)

{

$value

=

$list->firstchild->nodevalue;

echo

$value”

”;

}

>

输出为:111

222

333

取到最远的文件没问题,时间也能找到,但是cmd计算时间长度非常麻烦,您可以在excel里直接输入今天和找到的文件日期,相减就行了。

您把下面的批处理存为longestbat,放在目标文件夹下,双击运行就行了。最后除了提示久远的文件信息,还会把该信息写到longesttxt中。

@echo off

@dir /a-d /od|find "20">templog

@set /p longest=<templog

@del templog

@echo %longest%

@echo %longest%>longesttxt

@pause

使用QXmlStreamReader::readElementText()可以读取节点的内容。 取src的话使用if(m_xml->name()attributes()value(id) == big8) src = m_xml->name()attributes()value(src); 应该就可以获得了。

以上就是关于asp.net如何获取到xml文件的节点值全部的内容,包括:asp.net如何获取到xml文件的节点值、XML怎么获取指定节点下所有子节点的值、求C# 获取xml某个节点值方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10154656.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存