C# 使用XDocument类读取数组中的节点值
我有下面的xml。如果我有FolderName,如何在数组中获取FileTypeId、EngName、JpnName。对于eample,如果我有Test2,我希望使用XDocument类在字符串数组中获取2,EngName2,JpnName2C# 使用XDocument类读取数组中的节点值,c#,C#,我有下面的xml。如果我有FolderName,如何在数组中获取FileTypeId、EngName、JpnName。对于eample,如果我有Test2,我希望使用XDocument类在字符串数组中获取2,EngName2,JpnName2 <Row> <FolderName>Test1</FolderName> <FileTypeId>1</FileTypeId> <EngName>EngName
<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>
测试1
1
英语名称1
JpnName1
测试2
2
英语名称2
JpnName2
测试3
三
英语名称3
JpnName3
您需要主根目录
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>
var doc=XDocument.Load(“data.xml”);
测试1
1
英语名称1
JpnName1
测试2
2
英语名称2
JpnName2
测试3
三
英语名称3
JpnName3
尝试使用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;
}
正如“SNNBRN”所指出的,xml中需要一个根元素