2016-11-23 3 views
-2

У меня есть xml.How можно получить FileTypeId, EngName, JpnName в массиве, если у меня есть FolderName. Для примера, если у меня есть Test2, я хочу получить 2, EngName2, JpnName2 в массиве строк, используя класс XDocument.Чтение значения узла в массиве с использованием класса XDocument

<Row> 
    <FolderName>Test1</FolderName> 
    <FileTypeId>1</FileTypeId> 
    <EngName>EngName1</EngName> 
    <JpnName>JpnName1</JpnName> 
    </Row> 
    <Row> 
    <FolderName>Test2</FolderName> 
    <FileTypeId>2</FileTypeId> 
    <EngName>EngName2</EngName> 
    <JpnName>JpnName2</JpnName> 
    </Row> 
    <Row> 
    <FolderName>Test3</FolderName> 
    <FileTypeId>3</FileTypeId> 
    <EngName>EngName3</EngName> 
    <JpnName>JpnName3</JpnName> 
    </Row> 

ответ

0

Попробуйте с помощью LINQ:

XDocument xdoc = XDocument.Load("input.xml"); 

string yourCondition = "Test2"; 
var query = from elem in xdoc.Root.Elements("Row") 
      where elem.Element("FolderName").Value == yourCondition 
      select new 
      { 
       FileTypeId = elem.Element("FileTypeId").Value, 
       EngName = elem.Element("EngName").Value, 
       JpnName = elem.Element("JpnName").Value 
      }; 

if (query.Count() > 0) 
{ 
    var result = query.First(); 

    // You can access the fields through this: 
    string engName = result.EngName; 
    string fileTypeId = result.FileTypeId; 
    string jpnName = result.JpnName; 
} 

И как "SNN BRN" указал, вам нужен корневой элемент в вашем XML.

0

вам нужен главный корень,

var doc = XDocument.Load("data.xml"); 


<Rows> 
    <Row> 
    <FolderName>Test1</FolderName> 
    <FileTypeId>1</FileTypeId> 
    <EngName>EngName1</EngName> 
    <JpnName>JpnName1</JpnName> 
    </Row> 
    <Row> 
    <FolderName>Test2</FolderName> 
    <FileTypeId>2</FileTypeId> 
    <EngName>EngName2</EngName> 
    <JpnName>JpnName2</JpnName> 
    </Row> 
    <Row> 
    <FolderName>Test3</FolderName> 
    <FileTypeId>3</FileTypeId> 
    <EngName>EngName3</EngName> 
    <JpnName>JpnName3</JpnName> 
    </Row> 
</Rows> 
Смежные вопросы