我们经常使用Xpath去获取Xml中某个节点的值,但是有时候我们需要反过来,根据Xml的节点名来获取对应的Xpath。

找了一下,几乎所有的Xml库都没有提供类似的功能,这里我们就简单说一说这玩意咋实现比较方便。

这里我们先不考虑那么多,就是获取一个节点名,一个节点xpath,暂时不去整位置之类的玩意。

我们先定义一个类来接收这个玩意。

public class XpathInfo
{
public XpathInfo(string name, string xpath)
{
Name = name;
Xpath = xpath;
} public string Name { get;set; }
public string Xpath { get;set; }
}

这里面我们只定义一个名字一个Xpath,剩下的暂时不考虑,然后我们就用这个类来处理。

然后我们来获取某个Xml中所有的Xpath.

var xpathInofps = new List<XpathInfo>();
var document = XDocument.Parse(要处理的Xml字符串);
foreach (var node in document.Descendants())
{
var name = node.Nmae.LocalName;
var path = node.AncestorsAndSelf().Select(x => x.Name.LocalName).Reverse();
var xpath = string.Join("/", path);
xpathInfos.Add(new XpathInfo(name, xpath));
}

这样,我们就能生成一个Xpath列表,就可以根据名字来获取了,如果存在多个的我们可以再进行筛选。

根据Xml节点名获取Xpath的更多相关文章

  1. 第一百二十六节,JavaScript,XPath操作xml节点

    第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准 ...

  2. 从字符串中获取XML节点数据

    从字符串中获取XML节点数据,前一篇<字符串创建XML文档> http://www.cnblogs.com/insus/p/3298579.html 是储存为一个XML文档.现在,Insu ...

  3. Java获取XML节点总结之读取XML文档节点

    dom4j是Java的XML API,用来读写XML文件的.目前有很多场景中使用dom4j来读写xml的.要使用dom4j开发,需要下载导入dom4j相应的jar文件.官网下载:http://www. ...

  4. XML节点名称中有小数点处理(deal with dot)导致使用xpath时报错解决方法

    <?xml version="1.0"?> <ModifyFiles> <_Layout.cshtml>123456</_Layout.c ...

  5. 用DOM解析XML ,用xpath快速查询XML节点

    XPath是一种快速查询xml节点和属性的一种语言,Xpath和xml的关系就像是sql语句和数据库的关系.用sql语句可以从数据库中快速查询出东西同样的用xPath也可以快速的从xml中查询出东西. ...

  6. 用LINQ获取XML节点数据

    Insus.NET想对<从字符串中获取XML节点数据> http://www.cnblogs.com/insus/p/3299052.html 这篇改写为使用LINQ的方法实现.LINQ中 ...

  7. 常用的方法,读取XML节点并赋值给List集合

    一.前言 很多时候也可以直接在XML文件中配置好节点,在程序需要用到的时候,修改XML文件并不需要重新编译,这里是在极光推送中拿出来的一部分代码.代码简单,大家直接看例子吧. 二.实现过程 1.新创建 ...

  8. Java XML DOM解析(xPath)

    (一) XML概念 在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等.它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的 ...

  9. XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax

    本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...

  10. 详解SimpleXML添加_修改_删除_遍历XML节点属性

    SimpleXML概述 要处理XML 文件,有两种传统的处理思路:SAX 和DOM.SAX 基于事件触发机制,对XML 文件进行一次扫描,完成要进行的处理:DOM 则将整个XML 文件构造为一棵DOM ...

随机推荐

  1. 8.18域横向smb&wmi明文或hash传递

    知识点 windows 2012以上版本默认关闭wdigust,攻击者无法从内存中获取明文密码: Windows2012以下版本如安装KB287199补丁,同样也无法从内存中获取明文密码: 解决方法: ...

  2. 游戏AI行为决策——Behavior Tree(行为树)

    游戏AI行为决策--行为树 前言 行为树,是目前游戏中应用较为广泛的一种行为决策模型.这离不开它成熟的可视化编辑工具,例如Unity商城中的「Behaviour Designer」,甚至是虚幻引擎也自 ...

  3. CSS & JS Effect – Blue Tick Avatar

    效果 难点 难题只有一个, 那就是如何把 blue tick image 定位当 avatar 的右下角. HTML <div class="avatar-wrapper"& ...

  4. Codeforces Round 973 (Div. 2) C

    #include <bits/stdc++.h> using namespace std; int T; int n; struct edge { int pre; int nxt; in ...

  5. [Tkey] 黑兔子,白兔子

    CL-21 一般拿到这个题第一眼都应该能看出并查集,subtask1 是给并查集暴力修改的. 后面 subtask2 没有联通操作,是给纯线段树的,也算是启发正解了 再往下可以考虑操作 \(1\) 采 ...

  6. WiFi基础(五):802.11帧结构与WiFi控制帧、管理帧、数据帧

    liwen01 2024.09.22 前言 前面介绍了 WiFi 的工作原理和 WiFi 的接入过程,这里将通过分析 WiFi 具体数据包结构,让你对 WiFi 工作原理和接入过程有一个更进一步的了解 ...

  7. 《Vue.js 设计与实现》读书笔记 - 第 4 章、响应系统的作用与实现

    第 4 章.响应系统的作用与实现 4.1 响应式数据与副作用 副作用函数就是会对外部造成影响的函数,比如修改了全局变量. 响应式:修改了某个值的时候,某个会读取该值的副作用函数能够自动重新执行. 4. ...

  8. Salesforce AI Specialist篇之 Einstein Trust Layer

    本篇参考: https://trailhead.salesforce.com/content/learn/trails/drive-productivity-with-einstein-ai http ...

  9. template<> 模板特化

    template<> 是用于 模板特化(Template Specialization) 的一种语法. 模板特化允许你为某些特定的模板参数提供不同的实现.例如,template<&g ...

  10. excel江湖异闻录--渣渣

    有朋友问过我,为什么要写这些,细细思量,一来我喜欢这个纯粹的江湖,二则向这些纯粹的高手.大神致敬,三是纪念一下自己学习EXCEL的历程. 其实,每一个篇章都有一个逻辑,只不过这个逻辑,不是按照实力的高 ...