2014-12-11 4 views
0

Как получить имя FirstName, LastName и другое имя в следующем XML-файле образца? Мне нужно назначить их переменной из-за кода с помощью C#.Чтение элементов XML с использованием C#

<PatientRecord> 
     <Demographics> 
       <Names> 
        <cdsd:LegalName namePurpose="L"> 
           <cdsd:FirstName> 
            <cdsd:Part>SARAH</cdsd:Part> 
            <cdsd:PartType>GIV</cdsd:PartType> 
           </cdsd:FirstName> 
           <cdsd:LastName> 
             <cdsd:Part>GOMEZ</cdsd:Part> 
             <cdsd:PartType>FAMC</cdsd:PartType> 
           </cdsd:LastName> 
           <cdsd:OtherName> 
             <cdsd:Part>GABRIELA</cdsd:Part> 
             <cdsd:PartType>GIV</cdsd:PartType> 
           <cdsd:PartQualifier>BR</PartQualifier>     

ответ

0

Вы можете использовать функцию ReadXml .net, такие как:

DataSet objDataSet = new DataSet(); 

objDataSet.ReadXML("@PathofXMLfile", XmlReadMode.InferSchema); 

List<object> Names = objDataSet.Tables["FirstName"].AsEnumerable().Select(r => r["Part"]).ToList(); 

Это должно применять все строки данных в одной и той же структуры тегов (то есть: <cdsd:Part>SARAH</cdsd:Part>) в список объектов, то вы можете использовать цикл для получения каждого значения или указать имена [x] для получения значения по определенному индексу. Примечание. Я не уверен, что функция ReadXML удалит префикс тега (cdsd :) или если вам нужно будет включить это в выражение лямбда, то есть: List<object> Names = objDataSet.Tables["cdsd:FirstName"].AsEnumerable().Select(r => r["cdsd:Part"]).ToList();

0

Загрузите XML-документ в объект XmlDocument типа и использовать XPath запрос в ПгвЬЫате, LastName и т.д.

Э.Г.

XmlDocument doc = new XmlDocument(); 
doc.LoadXml(yourXmlstring); 

XmlNode firstNameNode = doc.DocumentElement.SelectSingleNode("/PatientRecord/Demographics/Names/cdsd:LegalName/cdsd:FirstName"); 

string firstName = firstNameNode.InnerText; 

Here's шаг за шагом руководство для чтения XML-документа.

0
XDocument xml = XDocument.Load(stream); 
var legalNames = xml.Root 
        .Elements("Demographics") 
        .Elements("Names") 
        .Elements("LegalName"); 
foreach(XElement ln in legalNames) 
{ 
    string firstName = (string)ln.Element("FirstName"); 
    // or you can get (string)ln.Element("FirstName").Element("Part"); 
    string lastName = (string)ln.Element("LastName"); 
    string otherName = (string)ln.Element("OtherName"); 
} 

для получения дополнительной информации см Programming Guide (LINQ to XML)

Смежные вопросы