"터미널 ID"및 "현재 구성"항목의 값을 가져 와서 변수에 할당하려고합니다.
나는 인터넷에서 다른 예를 찾았지만 아무도 내가 원하는 결과를 얻지 못했습니다.
XML 파일 :
<TerminalOverview xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Bmt.BmtSharp.WebInterface.Backend.API.App.Home.Model">
<InfoItems>
<InfoItem>
<Name>Device name</Name>
<Value/>
</InfoItem>
<InfoItem>
<Name>Terminal ID</Name>
<Value>253896528</Value>
</InfoItem>
<InfoItem>
<Name>Current Configuration</Name>
<Value>BmtVersion - 1.1.32</Value>
</InfoItem>
<InfoItem>
<Name>Local Time</Name>
<Value>15/10/2017 13:58:14</Value>
</InfoItem>
<InfoItem>
<Name>Time zone</Name>
<Value>Amsterdam</Value>
</InfoItem>
</InfoItems>
<Message xmlns="http://schemas.datacontract.org/2004/07/Bmt.BmtSharp.WebInterface.Backend.API.Common.Models" i:nil="true"/>
<Success xmlns="http://schemas.datacontract.org/2004/07/Bmt.BmtSharp.WebInterface.Backend.API.Common.Models">true</Success>
</TerminalOverview>
"Terminal ID"의 값을 변수 terminalID에 할당하고 "현재 구성"의 값을 변수 softwareVersion에 할당하고 싶습니다.
어떻게하면 되나요?
아래 코드는 모든 항목을 사전에 넣습니다. 그런 다음 사전에서 ID와 구성을 가져올 수 있습니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
const string FILEMNAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XDocument doc = XDocument.Load(FILEMNAME);
XElement root = doc.Root;
XNamespace ns = root.GetDefaultNamespace();
Dictionary<string, string> dict = root.Descendants(ns + "InfoItem")
.GroupBy(x => (string)x.Element(ns + "Name"), y => (string)y.Element(ns + "Value"))
.ToDictionary(x => x.Key, y => y.FirstOrDefault());
}
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다