首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

C# XML输出 属性名带前缀的有关问题

2013-04-21 
C# XML输出 属性名带前缀的问题本帖最后由 TaiJi1985 于 2013-03-14 10:43:20 编辑任务: 要自动的向Androi

C# XML输出 属性名带前缀的问题
本帖最后由 TaiJi1985 于 2013-03-14 10:43:20 编辑 任务: 要自动的向AndroidManifest.xml中加一个权限声明
原xml文件:


<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="96" android:versionName="0.96" package="org.aa.bb"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <application android:label="@string/app_name" android:icon="@drawable/icon">
        <meta-data android:name="com.a0soft.gphone.aTrackDog.webURL" android:value="http://code.google.com/p/get-a-robot-vpnc/" />
        <meta-data android:name="com.a0soft.gphone.aTrackDog.dlURL" android:value="http://code.google.com/p/get-a-robot-vpnc/downloads/list?can=3" />
        <activity android:label="@string/add_network" android:name=".cc" />
        <activity android:label="@string/backend_file_manager" android:name=".BackendFileManager" />
        <activity android:label="@string/app_name" android:name=".dd" android:launchMode="singleTask" android:configChanges="keyboardHidden|orientation">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service android:label="VPNC" android:name="MonitorServiceImpl">
            <intent-filter>
                <action android:name="org.codeandroid.vpnc_frontend.MonitorServiceImpl" />
            </intent-filter>
        </service>
    </application>
    <uses-permission android:name="android.permission.VIBRATE" />
</manifest>


想在上面加一个uses-permission 的一行:
  <uses-permission android:name="android.permission.READ_PHONE_STATE" />


自己写的代码:

desc_x.Load(@"E:\aa\AndroidManifest.xml");
XmlNode dn = desc_x.SelectSingleNode("/manifest");
XmlElement xn = desc_x.CreateElement("uses-permission");
XmlAttribute a = desc_x.CreateAttribute("android", "name", xn.NamespaceURI);
a.Value = "android.permission.READ_PHONE_STATE";
xn.Attributes.Append(a);
dn.AppendChild(xn);
string outfile = @"E:\aa\AndroidManifest2.xml";
desc_x.Save(outfile);
 


输出结果中, 属性name没有带有“android:"的前缀。 不知如何让他输出带有"android:"的属性名。 


<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="96" android:versionName="0.96" package="org.codeandroid.vpnc_frontend" xmlns:android="http://schemas.android.com/apk/res/android">


  <application android:label="@string/app_name" android:icon="@drawable/icon">
    <meta-data android:name="com.a0soft.gphone.aTrackDog.webURL" android:value="http://code.google.com/p/get-a-robot-vpnc/" />
    <meta-data android:name="com.a0soft.gphone.aTrackDog.dlURL" android:value="http://code.google.com/p/get-a-robot-vpnc/downloads/list?can=3" />
    <activity android:label="@string/add_network" android:name=".EditNetwork" />
    <activity android:label="@string/backend_file_manager" android:name=".BackendFileManager" />
    <activity android:label="@string/app_name" android:name=".VPNC" android:launchMode="singleTask" android:configChanges="keyboardHidden|orientation">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <service android:label="VPNC" android:name="MonitorServiceImpl">
      <intent-filter>
        <action android:name="org.codeandroid.vpnc_frontend.MonitorServiceImpl" />
      </intent-filter>
    </service>
  </application>
  <uses-permission android:name="android.permission.VIBRATE" />
  <uses-permission name="android.permission.READ_PHONE_STATE" /><!-- 这里 -->
</manifest>


[解决办法]
直接吧desc_x.CreateAttribute("android", "name", xn.NamespaceURI);里面的xn.NamespaceURI换成"android"即可。

热点排行