未知昵称 2018-05-27 13:46 采纳率: 66.7%
浏览 2341
已采纳

C#读取xml文件指定节点内容的值

 <AR-PACKAGE>
    <SHORT-NAME>ImplementationDataTypes</SHORT-NAME>
                    <ELEMENTS>
                        <IMPLEMENTATION-DATA-TYPE>
                            <SHORT-NAME>uint8</SHORT-NAME>
                            <CATEGORY>VALUE</CATEGORY>
                            <SW-DATA-DEF-PROPS>
                            <SW-DATA-DEF-PROPS-VARIANTS>
                                <SW-DATA-DEF-PROPS-CONDITIONAL>
                                    <BASE-TYPE-REF DEST="SW-BASE-TYPE">/DataTypes/BaseTypes/uint8</BASE-TYPE-REF>
                                </SW-DATA-DEF-PROPS-CONDITIONAL>
                            </SW-DATA-DEF-PROPS-VARIANTS>
                            </SW-DATA-DEF-PROPS>
                        </IMPLEMENTATION-DATA-TYPE>
        </ELEMENTS>
</AR-PACKAGE>

xml文件结构如上所示,
要求读这个节点的值“/DataTypes/BaseTypes/uint8”

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-05-27 14:48
    关注
     using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml.Linq;
    
    namespace Q690338
    {
        class Program
        {
            static void Main(string[] args)
            {
                string xml = @"<AR-PACKAGE>
        <SHORT-NAME>ImplementationDataTypes</SHORT-NAME>
                        <ELEMENTS>
                            <IMPLEMENTATION-DATA-TYPE>
                                <SHORT-NAME>uint8</SHORT-NAME>
                                <CATEGORY>VALUE</CATEGORY>
                                <SW-DATA-DEF-PROPS>
                                <SW-DATA-DEF-PROPS-VARIANTS>
                                    <SW-DATA-DEF-PROPS-CONDITIONAL>
                                        <BASE-TYPE-REF DEST=""SW-BASE-TYPE"">/DataTypes/BaseTypes/uint8</BASE-TYPE-REF>
                                    </SW-DATA-DEF-PROPS-CONDITIONAL>
                                </SW-DATA-DEF-PROPS-VARIANTS>
                                </SW-DATA-DEF-PROPS>
                            </IMPLEMENTATION-DATA-TYPE>
            </ELEMENTS>
    </AR-PACKAGE>";
                var doc = XDocument.Parse(xml);
                var query = doc.Element("AR-PACKAGE")
                    .Element("ELEMENTS")
                    .Elements("IMPLEMENTATION-DATA-TYPE").First()
                    .Element("SW-DATA-DEF-PROPS")
                    .Elements("SW-DATA-DEF-PROPS-VARIANTS").First()
                    .Elements("SW-DATA-DEF-PROPS-CONDITIONAL").First()
                    .Element("BASE-TYPE-REF").Value;
                Console.WriteLine(query);
    
            }
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵
  • ¥15 cfx离心泵非稳态计算