如何用C#获取此XML文件的VALUE值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用C#获取此XML文件的VALUE值?相关的知识,希望对你有一定的参考价值。
<?xml version="1.0" encoding="utf-8" ?>
- <SysStruct>
<System id="1" value="编目" version="2.1" description="" />
<System id="2" value="网管" version="2.1" description="" />
<System id="3" value="文件同步拷贝" version="2.1" description="文件同步拷贝" />
<System id="4" value="文件同步删除" version="2.1" description="文件同步删除" />
<System id="5" value="垃圾文件清理" version="2.1" description="垃圾文件清理" />
<System id="6" value="系统日志清理" version="2.1" description="系统日志清理" />
<System id="7" value="分布式调度中心" version="3.0" description="分布式调度中心" />
<System id="8" value="高性能集群" version="3.0" description="高性能集群" />
<System id="9" value="媒体服务单元" version="3.0" description="媒体服务单元" />
<System id="10" value="系统代理" version="3.0" description="系统代理" />
</SysStruct>
另外xmlnode和xmlnodelist的区别,还有selectnodes和selectsinglenodes的区别?
就这三个问题,希望大家能详细解答。
XmlNodeList grouplist =xmlDoc.SelectSingleNode("SysStruct").ChildNodes;
foreach (XmlNode xng in grouplist)
XmlElement xeg = (XmlElement)xng;
string id=xeg.GetAttribute("id");
string value=xeg.GetAttribute("value");
string version=xeg.GetAttribute("version");
string description=xeg.GetAttribute("description");
2、xmlnodelist和xmlnode的区别:xmlnode是一个节点,而xmlnodelist节点的集合列表
3、所有类型的节点都带有selectNodes方法,该方法的唯一参数是XSL的模式规则,返回值是匹配该规则的结果集合。如:rootNode.selectNodes(“//book[price < 10]”) 。而节点中的selectSingleNodes方法的用法与selectNodes是一样的,只是返回结果为查找到的满足条件的第一个节点而已。 参考技术A 1、
XmlNodeList grouplist =xmlDoc.SelectSingleNode("SysStruct").ChildNodes;
foreach (XmlNode xng in grouplist)
XmlElement xeg = (XmlElement)xng;
string id=xeg.GetAttribute("id");
string value=xeg.GetAttribute("value");
string version=xeg.GetAttribute("version");
string description=xeg.GetAttribute("description");
2、xmlnodelist和xmlnode的区别 就相当于一个数组和数组成员
3、不会 参考技术B 百度一下 C# 操作 XML
参见
http://wenku.baidu.com/view/deb5a7c4bb4cf7ec4afed083.html 参考技术C xPath: /SysStruct/System[id=...]
xmlnode和xmlnodelist顾名思义就是一个是一个结点,一个是一组结点。
后面的问题也相同。 参考技术D 为什么一分不给呢?
c#调用c++如何用unit8传递值
【中文标题】c#调用c++如何用unit8传递值【英文标题】:c# invoke c++ how to pass value with unit8 【发布时间】:2017-05-26 09:31:39 【问题描述】:我有一个需要在我的 C# 应用程序中运行的 c# 脚本。
这是我的 c++ 函数,我希望可以在我的 c# 应用程序中用 c# 调用它 c++ 原型:
int ApplibUsbSimple_Login(UINT8 *buff)
我使用 c# 调用它:
[DllImport("test.dll", EntryPoint = "login")]
public static extern int Login(????? buff)
我刚才在 google 和 *** 中找到了答案,但我不能 得到答案。 我应该如何更换??????有正确的变量
【问题讨论】:
【参考方案1】:正如其他人已经指出的那样,如果您的本机函数中使用的 UINT8
类型表示一个 8 位字节,您可以将其映射到 C# 中的 byte
类型。
此外,根据this MSDN doc page,如果您查看 C-Style Arrays 部分,您可以使用此 C# 代码作为字节数组参数:
[MarshalAs(UnmanagedType.LPArray)] byte[] buff
另外,还有几个问题要问你:原生C接口函数如何知道输入数组的size?这个数组是否以 0 结尾?该函数中是否有另一个参数指定数组的大小(以字节为单位)?数组的大小是否固定并在函数文档中指定?
【讨论】:
【参考方案2】:我觉得你可以用byte[]
见https://docs.microsoft.com/en-us/dotnet/articles/csharp/language-reference/keywords/byte
【讨论】:
如何在c#中传递参数?我想传递值:0x4f @winter 你只想传递一个字节?我认为您不了解您调用的功能。阅读它的文档。它接受一个数组。【参考方案3】:当然,C# 没有确切的类型 uint8,但等效的是 byte。
【讨论】:
以上是关于如何用C#获取此XML文件的VALUE值?的主要内容,如果未能解决你的问题,请参考以下文章