Заполните комбинированный список комбинированными данными из XML-файла - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть XML-файл, подобный этому:

<?xml version="1.0"?>
<ArrayOfToolClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ToolClass>
    <ToolID>1</ToolID>
    <ToolName>Multiflute Endmill</ToolName>
    <ToolDia>8</ToolDia>
    <ToolTooth>4</ToolTooth>
    <ToolApmxs>32</ToolApmxs>
    <ToolCuttingSpeed>150</ToolCuttingSpeed>
    <ToolFeedPerTooth>0.04</ToolFeedPerTooth>
    <ToolAe>8</ToolAe>
    <ToolAp>4</ToolAp>
    <ToolManufacturer>SECO</ToolManufacturer>
    <ToolSerial>DKFLJDSKJ</ToolSerial>
  </ToolClass>
  <ToolClass>
    <ToolID>2</ToolID>
    <ToolName>Multiflute Endmill</ToolName>
    <ToolDia>4</ToolDia>
    <ToolTooth>4</ToolTooth>
    <ToolApmxs>25</ToolApmxs>
    <ToolCuttingSpeed>235</ToolCuttingSpeed>
    <ToolFeedPerTooth>0.03</ToolFeedPerTooth>
    <ToolAe>4</ToolAe>
    <ToolAp>0.4</ToolAp>
    <ToolManufacturer>SECO</ToolManufacturer>
    <ToolSerial>DJFKLSL</ToolSerial>
  </ToolClass>
</ArrayOfToolClass>

Я хотел бы заполнить данные в поле со списком:

displaymember= <TooDia>"x"<ToolApmxs>" mm - "<ToolName>;
valuemember=<ToolID>;

Я пытался с этим кодом:

var xmlDocument = XDocument.Load(@"data\tools.xml");
var toolist = xmlDocument.Descendants("ToolClass");

Но как мне объединить данные в указанный формат?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018
var toolist = xmlDocument.Descendants("ToolClass")
    .Select(tc => new
    {
        Display = tc.Element("ToolDia").Value + " x " + tc.Element("ToolApmxs").Value + " mm - " + tc.Element("ToolName").Value,
        Value = tc.Element("ToolID").Value
    })
    .ToList();

comboBox.DisplayMember = "Display";
comboBox.ValueMember = "Value";
comboBox.DataSource = toolist;
0 голосов
/ 25 сентября 2018

Таким образом, вы можете использовать что-то вроде этого, чтобы получить внутренний текст первого члена:

var xmlDocument = XDocument.Load(@"data\tools.xml");

var tooList = xmlDocument.GetElementsByTagName("ToolClass").Item(0).InnerText;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...