Прошу прощения за продвинутый, если этот вопрос повторен, но из моего поиска не было никаких подходящих ответов для моей конкретной ошибки.XElement Узлы и дочерние узлы
Так что на вопрос, у меня в настоящее время есть документ Excel с несколькими строками XML в листе распространения. В настоящее время я создаю консольное приложение в C#, чтобы затем отфильтровать XML в читаемые данные. В настоящее время я могу извлечь содержимое документов, и теперь я запускаю код для разбивки данных.
Так что для структуры XML:
XML-имеет несколько полей, в каждой области есть метка и значение поле. Поэтому я взял маршрут для создания списка всех узлов (например, полей) и попытаюсь извлечь данные с помощью XElement. Также я знаю все ярлыки, поэтому я буду использовать эти метки, чтобы попытаться собрать значения.
foreach(DataRow row in result.Tables[0].Rows)
{
var XmlData = row.ItemArray[2].ToString();
XElement doc = XElement.Parse(XmlData);
foreach (XElement element in doc.Elements("fields"))
{
var userEntry = new FieldEntryModel();
//element.Value.ToList();
var elementNodes = element.Nodes().ToList();
var nodeBreakdown = element.Nodes().OfType<XElement>();
foreach (var something in nodeBreakdown)
{
var willthiswork = something.DescendantNodes().OfType<XElement>();
foreach (var item in willthiswork) {
if (item.Value != null)
{
if (item.Value.ToString().Contains("Forename"))
//Console.WriteLine(item..ToString());
//userEntry.Forename = item.Value.ToString();
}
}
}
}
Я начал путать между преобразованиями имен и типами объектов, чтобы получить данные.
ОБРАЗЦА XML:
<fields>
<field>
<label>
Name
<label>
<value>
Test
</value>
</field>
<field>
<label>
job
<label>
<value>
developer
</value>
</field>
<field>
<label>
address
<label>
<value>
1 Test
</value>
</field>
<field>
<label>
Name
<label>
<value>
Test
</value>
</field>
</fields>
Я бы тогда хранить эти данные в моей модели начального поля, так что:
public class FieldEntryModel
{
public string Name {get;set;}
public string Job {get;set;}
public string Address{get;set;}
}
Просьба показать образец XML и, если возможно, результат, который вы хотите увидеть после обработки этого образца. –
OK я поставлю его вверх – jsg
«XElement.Value» - это строка. Вам не нужно использовать '.ToString()' на нем. –