我们经常使用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. vue3 modifier

    vue3 modifier 是什么? modifier 中文意思为修饰符. 在vue3中主要是体现在v-model上,vue3允许我们添加自定义修饰符. 比如说这样: <template> ...

  2. Vue——前端框架

    Vue    Vue 快速入门    <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  3. 音视频入门-5-音频编码原理、编码器、ADTS格式

    1.  概念 音频压缩技术指的是对原始数字音频信号流(PCM编码)运用的数字信号处理技术. 2. 背景 和 压缩的必要性 研究发现,直接采用PCM码流进行存储和传输存在非常大的冗余度. 以CD为例,其 ...

  4. 音视频入门-2-ffmpeg-Linux下编译浅析,推流拉流快速体验

      下载ffmpeg http://ffmpeg.org/download.html 1 .2 两种方式可以下载, 皆可. 编译ffmpeg ./configure -prefix=/usr/loca ...

  5. 16 模块time、datetime、random、hashlib、logging

    1. 时间模块time.datetime 在python中,表示时间有三种方式:时间戳 格式化的时间字符串(Format String): '2022-03-01' 时间元组(struct_time) ...

  6. auto` 作为返回值类型的一些限制

    在 C++ 中,auto 作为返回值类型有一些限制,这与类型推导的方式和时机有关. 虽然在很多场景下 auto 可以简化代码,但它不能直接用于函数返回类型,这是因为在编译时类型推导的机制不同于局部变量 ...

  7. Linux 循环设备 loop疑惑

    什么是loop设备? loop设备是一种伪设备,是使用文件来模拟块设备的一种技术,文件模拟成块设备后, 就像一个磁盘或光盘一样使用.在使用之前,一个 loop 设备必须要和一个文件进行连接.这种结合方 ...

  8. 专场直播预约 | 邀您探讨KaiwuDB 离散制造业场景解决方案

    先导语 近日,KaiwuDB 携手山东重工集团有限公司(以下简称:山东重工)  重磅发布"离散制造业解决方案".该方案以 KaiwuDB 就地运算技术专利技术为底座,搭建了&quo ...

  9. python中的内置函数zip函数

    关于zip()函数,有几点要讲的. 首先,官方文档中,它是这样描述的: Make an iterator that aggregates elements from each of the itera ...

  10. GitLab +Jenkins + WebHook配置自动发版

    1.jenkins安装插件 需要安装插件:Gitlab Hook Plugin和Gitlab Plugin 2.Jenkins配置job 复制这里的url,需要在后面gitlab的配置中使用到. 基本 ...