教程

https://www.w3schools.com/xml/xpath_nodes.asp

节点之间的关系

Parent,Children,Siblings,Ancestors,Descendants

qutoric

最新的online工具  http://www.qutoric.com/xslt/analyser/xpathtool.html

旧版的 http://qutoric.com/sketchpath/xpath-editor.html

visual studio的插件

https://github.com/uli-weltersbach/XPathTools

https://github.com/uli-weltersbach/XPathTools/wiki 使用方法

Copy value-based XPath

https://github.com/uli-weltersbach/XPathTools/wiki/Copying-XPaths#copy-value-based-xpath

在Distinct XPath中新增一个key,这样可以拿到appSettings下面的key/value的xpath

/configuration/appSettings/add[@key='OutputRuleWebPartExecutionTimeElapse']/@key

<add key="OutputRuleWebPartExecutionTimeElapse" value="False" />

将鼠标放在add上面,右键,选择copy xpath,然后找到第三个

得到的路径 /configuration/appSettings/add[@key='OutputRuleWebPartExecutionTimeElapse']

这个node的OuterXml是:<add key="OutputRuleWebPartExecutionTimeElapse" value="False" />

这个node的value是null

 

将鼠标放在value上面,选择copy xpath,然后找到第三个

得到的路径 /configuration/appSettings/add[@key='OutputRuleWebPartExecutionTimeElapse']/@value

这个node的OuterXml是:value="False"

这个node的value是: False

 [Test]
public void XPathTest()
{
var path1 = "/configuration/appSettings/add[@key='OutputRuleWebPartExecutionTimeElapse']";
var path2 = "/configuration/appSettings/add[@key='OutputRuleWebPartExecutionTimeElapse']/@value"; var desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
var fileName = "test.xml";
var filePath = Path.Combine(desktopPath, fileName);
var doc = new XmlDocument();
doc.Load(filePath);
var node1 = doc.SelectSingleNode(path1);
var node2= doc.SelectSingleNode(path2);
Console.WriteLine(node1.OuterXml);
Console.WriteLine(node2.OuterXml);
Console.WriteLine(node2.Value);
}
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="OutputRuleWebPartExecutionTimeElapse" value="False" />
</appSettings>
</configuration>

多种方法,通过C#移除xmlnode

https://stackoverflow.com/questions/6500989/deleting-xml-using-a-selected-xpath-and-a-for-loop

XmlDocument document = new XmlDocument();
document.Load(fileName); XmlNode node = document.SelectSingleNode("Elements/Element1");
node.ParentNode.RemoveChild(node); document.Save(fileName);

Editing XML Data using XPathNavigator

https://docs.microsoft.com/en-us/dotnet/standard/data/xml/editing-xml-data-using-xpathnavigator

https://docs.microsoft.com/en-us/dotnet/api/system.xml.xpath.xpathnavigator.select?view=netframework-4.7.2

XPath Nodes的更多相关文章

  1. XPath 获取两个node中间的HTML Nodes

    XPath 获取两个node中间的HTML Nodes 2015-06-01 16:42 972人阅读 评论(0) 收藏 举报 //div[@id="Recipe"]//h5[co ...

  2. Selenium Xpath Tutorials - Identifying xpath for element with examples to use in selenium

    Xpath in selenium is close to must required. XPath is element locator and you need to provide xpath ...

  3. XPath、XQuery 以及 XSLT 函数

    存取函数 名称 说明 fn:node-name(node) 返回参数节点的节点名称. fn:nilled(node) 返回是否拒绝参数节点的布尔值. fn:data(item.item,...) 接受 ...

  4. sax xpath读取xml字符串

    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOExceptio ...

  5. Parse xml/json[xpath/jpath]

    import groovy.util.XmlSlurper import groovy.util.XmlParser import com.eviware.soapui.support.GroovyU ...

  6. XQuery的 value() 方法、 exist() 方法 和 nodes() 方法

    Xml数据类型 /*------------------------------------------------------------------------------+ #| = : = : ...

  7. Xpath用法

    在进行网页抓取的时候,分析定位html节点是获取抓取信息的关键,目前我用的是lxml模块(用来分析XML文档结构的,当然也能分析html结构), 利用其lxml.html的xpath对html进行分析 ...

  8. php与xpath使用操作文本节点

    <?php $html="<p> 对于2014年,省统计局的统计分析显示,我省消费流通领域受诸多因素的影响,有机遇也有挑战.但值得注意的是,消费增长还存在不少制约因素,比如 ...

  9. JAVA通过XPath解析XML性能比较(原创)

    (转载请标明原文地址) 最近在做一个小项目,使用到XML文件解析技术,通过对该技术的了解和使用,总结了以下内容. 1 XML文件解析的4种方法 通常解析XML文件有四种经典的方法.基本的解析方式有两种 ...

随机推荐

  1. C# HttpWebRequest Post Get 请求数据

    Post请求 1 //data 2 string cookieStr = "Cookie信息"; 3 string postData = string.Format("u ...

  2. VMware vCenter 6.5 安装及群集配置介绍

    一.介绍 VMware vCenter Server 提供了一个可伸缩.可扩展的平台,为虚拟化管理奠定了基础.可集中管理VMware vSphere环境,与其他管理平台相比,极大地提高了 IT 管理员 ...

  3. RabbitMQ系列(八)--顺序消费模式和迅速消息发送模式

    MQ使用过程中,有些业务场景需要我们保证顺序消费,而如果一个Producer,一个Queue,多个Consumer的情况下是无法保证顺序的 举例: 1.业务上产生三条消息,分别是对数据的增加.修改.删 ...

  4. 03Servlet API

    Servlet API Servlet是实现javax.servlet.Servlet接口的对象.大多数Servlet通过从GenericServlet或HttpServlet类进行扩展来实现.Ser ...

  5. 03Oracle Database 物理结构,逻辑结构

    Oracle Database 物理结构,逻辑结构 Oracle Database 物理结构 数据文件 Oracle数据库有一个或多个物理的数据文件.数据库的数据文件包含全部数据库数据.逻辑数据物理地 ...

  6. [转载] kprobe原理解析(一)

    From: https://www.cnblogs.com/honpey/p/4575928.html kprobe原理解析(一) kprobe是linux内核的一个重要特性,是一个轻量级的内核调试工 ...

  7. 洛谷——P3369 【模板】普通平衡树(splay)(基础splay,维护一些神奇的东东)

    P3369 [模板]普通平衡树 平衡树大法好,蒟蒻(博主)最近正在收集高级数据结构的碎片,企图合成数据结构的元素之力来使自己的RP++... 您需要写一种数据结构(可参考题目标题),来维护一些数,其中 ...

  8. P1048 采药

    题目描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个 ...

  9. Tornado进阶

    三.Tornado进阶 3.1 Application settings debug,设置tornado是否工作在调试模式,默认为False即工作在生产模式.当设置debug=True 后,torna ...

  10. (二)Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用

    #!usr/bin/env python # -*- coding: utf-8 -*- def test(): print('hello, world') if __name__ == " ...