
//加载参数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某个节点值方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)