如何以最快的速度查到XML的节点!并删除节点!

wangtiantian23 2011-11-03 05:06:43
XML如下 如何以最快的速度查找到
android:name="android.intent.category.LAUNCHER"
的这个节点!并删除掉!


<?xml version="1.0" encoding="UTF-8"?>
<manifest android:versionCode="1" android:versionName="1.0.0" package="com.android.test1"
xmlns:android="http://schemas.android.com/apk/res/android">
<application android:label="@string/app_name" android:icon="@drawable/logo" android:name="TestApplication" android:debuggable="false" android:taskAffinity="com.android.test1">
<activity android:theme="@style/ContentOverlay" android:name="SwitchUser" android:exported="true" android:configChanges="keyboardHidden|orientation" android:windowSoftInputMode="stateAlwaysHidden">
<intent-filter>
<action android:name="com.android.test1.intent.action.USER_SWITCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:theme="@style/ContentOverlay" android:name="UserTest1AttentionFansList" android:configChanges="keyboardHidden|orientation">
<intent-filter>
<action android:name="com.android.test1.intent.action.BLOG_DELETE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" android:name="SplashActivity" android:alwaysRetainTaskState="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /><!--查找此节点-->
</intent-filter>
</activity>

</application>
</manifest>
...全文
103 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangtiantian23 2011-11-04
  • 打赏
  • 举报
回复
非常感谢!非常感谢!
PaulyJiang 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lengfengkong 的回复:]
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNode xn = doc.SelectSingleNode(node);
有个RemoveChild 你自己去整吧
[/Quote]
++
mabaolin 2011-11-04
  • 打赏
  • 举报
回复
放到天津计算中心去做,目前世界运算速度第一。。。。。
sdl2005lyx 2011-11-04
  • 打赏
  • 举报
回复
喔,看成有多个节点了,原来只有一个节点,那就更简单,改成:


XmlDocument doc = new XmlDocument();
doc.Load(@"C:\test.xml");
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("android", "http://schemas.android.com/apk/res/android");

XmlNode node = doc.SelectSingleNode("//category[@android:name='android.intent.category.LAUNCHER']", nsmgr);
XmlNode parent = node.ParentNode;
parent.RemoveChild(node);
doc.Save(@"C:\test.xml");



关键是那个命名空间!
sdl2005lyx 2011-11-03
  • 打赏
  • 举报
回复
完整解决:

XmlDocument doc = new XmlDocument();
doc.Load(@"C:\test.xml");
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("android", "http://schemas.android.com/apk/res/android");

XmlNodeList nodelist = doc.SelectNodes("//category[@android:name='android.intent.category.DEFAULT']", nsmgr);
foreach(XmlNode node in nodelist)
{
XmlNode parent=node.ParentNode;
parent.RemoveChild(node);
}

doc.Save(@"C:\test.xml");
欢乐的小猪 2011-11-03
  • 打赏
  • 举报
回复
用xpath
http://wenku.baidu.com/view/a7f8d9f9770bf78a652954db.html
LengFengKong 2011-11-03
  • 打赏
  • 举报
回复
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNode xn = doc.SelectSingleNode(node);
有个RemoveChild 你自己去整吧
wangtiantian23 2011-11-03
  • 打赏
  • 举报
回复
没人会?自己顶一下吧!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧