unity3d android 读取xml,【Unity3d】C#使用XmlDocument读写xml含冒号的节点(含命名空间)...

【Unity3d】C#使用XmlDocument读写xml含冒号的节点(含命名空间)

2020年07月23日

| 萬仟网IT编程

 | a48e1d17a2b0511faa7da7240b1971f6.png我要评论

发现在使用C#的XmlDocument读写XML文件时,读写带冒号的节点时,冒号前的内容给忽略了。举个例子,以下是AndroidManifest.xml文件的部分内容:

发现在使用C#的XmlDocument读写XML文件时,读写带冒号的节点时,冒号前的内容给忽略了。

举个例子,以下是AndroidManifest.xml文件的部分内容:

...

当使用c#的XmlDocument来动态添加权限时,

一般我们会这样写:

string amFilePath = ".../AndroidManifest.xml";

XmlDocument amXmlDocument = new XmlDocument ();

amXmlDocument.Load (amFilePath);

XmlNode manifestNode = amXmlDocument.SelectSingleNode ("/manifest");

ArrayList permissionList = ...;

foreach (string permissionStr in permissionList) {

XmlElement permissionElement = amXmlDocument.CreateElement ("uses-permission");

permissionElement.SetAttribute ("android:name", permissionStr);

manifestNode.AppendChild (permissionElement);

}

amXmlDocument.Save (amFilePath);

这样写后,最后生成的节点是这样的:

...

发现name前的"android"没有了。这样当然是不对的。

正确的写法是在创建节点时指定命名空间,这个命名空间是已经在根节点中存在的。

正确代码如下:

foreach (string permissionStr in permissionList) {

XmlElement permissionElement = amXmlDocument.CreateElement ("uses-permission");

permissionElement.SetAttribute ("name", "http://schemas.android.com/apk/res/android", permissionStr);

manifestNode.AppendChild (permissionElement);

}

这样生成的节点属性名称就是"android:name"。

需要注意的是,CreateELement方法和SetAttribute方法都有重载方法支持添加命名空间。

本文地址:https://blog.youkuaiyun.com/devnn/article/details/107515608

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

相关文章:

字符串: C#中$的用法: 是为了替代string.format();https://www.cnblogs.com/hilolin/p/91239...

1 public Form1() 2 { 3 InitializeComponent(); 4 treeView1.AllowDrop = true...

"回到目录" LindDotNetCore中间件 大叔认识中间件就是主要对 http请求进行拦截 ,然后添加具体个性化功能的逻辑,这种把请求切开,添...

.net dataexcel通信使用 搭建简单文件服务器

使用.net dataexcel通信搭建一个简单的文件服务器。

通信简单介绍

1,通信使用tcp协...

gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg

SignalR是一个.NET Core/.NET Framework的实时通讯的框架,一般应用在ASP.NET上,当然也可以应用在Winform上实...

gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg

整理docker中常用的命令,方便大家学习和命令查询。最后分享一个.NET Core docker部署的示例 ...

repeater中footertemplate并无findcontrol方法,也无法将footertemplate转成repeate...

什么是物联网网关?物联网网关是物联网领域的一种通信技术。层次架构:感知层终端设备->网关->骨干网-...

前言

2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年。

元旦放假在家写了个asp.net core验证码...

一、进入插入模板

1、protectedvoid fvwitemdetails_modechanging(object sender,formviewmode...

网友评论

387afa1e91d68b43eca6c11dc07bf577.gif

验证码:

636916.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值