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

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条)

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能