xml 子元素节点或属性值

西达斯·瓦鲁内什

我有一个带有嵌套 xml 元素的 xml 模式,以下是其中的一小部分

<aa>
    <id extension="xx" root="56" />
    <name>demo</name>
    <telecom use="emer" value="tel:34444" />
</aa>

<bb>
   <value value="12345" />
</bb>
<cc>
   <value value="234567" />
</cc>

由此,我必须得到“aa tag”下“name tag”的值,telecom tag的最后一个属性(tel:),以及“value tag”的属性值(在bb tag和cc tag下找到)

我尝试了以下代码,但并没有完全达到我的期望。

xDoc.Descendants().Where(x => x.Name.LocalName.Equals("aa")
                              || x.Name.LocalName.Equals("telecom") && 
                              (x.FirstAttribute.Equals("EC")
                               || x.Name.LocalName.Equals("bb")
                               || x.Name.LocalName.Equals("cc"))

请提供此问题的解决方案。

二书

您需要选择每个值的适当后代,然后通过使用适当的 linq 查询,您可以选择所需的值

class Program
{
    public static void Main(string[] args)
    {
        XDocument doc = XDocument.Load(@"Path to your xml file");

        var name = doc.Descendants("organisation").Elements().Where(x => x.Name == "name").Select(x => (string)x).FirstOrDefault();
        var tel = doc.Descendants("organisation").Elements().Where(x => x.Name == "telecom").Select(x => x.Attribute("value").Value).FirstOrDefault();
        var bb_value = doc.Descendants("startdate").Elements().Where(x => x.Name == "value").Select(x => x.Attribute("value").Value).FirstOrDefault();
        var cc_value = doc.Descendants("enddate").Elements().Where(x => x.Name == "value").Select(x => x.Attribute("value").Value).FirstOrDefault();

        Console.WriteLine($"name: {name} \ntel: {tel} \nbb_value: {bb_value} \ncc_value: {cc_value}");
        Console.ReadLine();
    }
}

输出:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取子节点的xml属性值

来自分类Dev

基于节点属性值的Echo XML子节点值

来自分类Dev

基于节点属性值的Echo XML子节点值

来自分类Dev

用子节点的值替换 XML 父节点的属性

来自分类Dev

Powershell:按子节点值按元素对xml进行排序

来自分类Dev

XML到Linq获取具有属性值的子节点

来自分类Dev

XML到Linq获取具有属性值的子节点

来自分类Dev

如何根据属性值确定 XML 元素的子元素

来自分类Dev

XML转换-将父节点中“子节点”中的元素包含为属性

来自分类Dev

使用父节点上的where条件获取XML子节点的属性值

来自分类Dev

XML模式:子节点属性值的唯一性仅在每个父节点内?

来自分类Dev

XSLT 1.0:如何合并XML节点,然后将属性移动到子节点并更改其值

来自分类Dev

C#提取-XML子节点属性

来自分类Dev

获取xml节点c#的子属性

来自分类Dev

来自特定元素节点的XML抓取属性

来自分类Dev

XSLT:将XML属性转换为元素,然后将该值填充到孙节点

来自分类Dev

查询XML文件并仅遍历具有特定元素名称和属性值的节点

来自分类Dev

从soapxml获取XML子节点值

来自分类Dev

Openrefine:根据子节点值选择 XML

来自分类Dev

Xml按元素值删除节点

来自分类Dev

从指定的节点区域解析xml属性值

来自分类Dev

获取特定节点的xml属性值

来自分类Dev

XML:按值而不是属性选择节点

来自分类Dev

根据属性获取较高的XML节点值

来自分类Dev

带有属性的 XML 节点值

来自分类Dev

JAVA 根据属性值删除 XML 节点

来自分类Dev

php中xml的每个节点属性值

来自分类Dev

如何使用sql server在XML文档中获取包含具有给定属性值的子节点的节点?

来自分类Dev

如何同时解析父XML和子XML节点属性

Related 相关文章

热门标签

归档