得到XML节点C#
问题描述:
我有这样的XML文件:得到XML节点C#
<?xml version="1.0" encoding="utf-8"?>
<Config>
<MetadataFormConfig FieldInternalName="Test">
<Tabs>
<Tab Title="A to C" Order="1">
<ShowParentTerm>A</ShowParentTerm>
<ShowParentTerm>B</ShowParentTerm>
<ShowParentTerm>C</ShowParentTerm>
</Tab>
<Tab Title="D to E" Order="2">
<ShowParentTerm>D</ShowParentTerm>
<ShowParentTerm>E</ShowParentTerm>
</Tab>
</Tabs>
</MetadataFormConfig>
</Config>
我想通过FieldInternalName所有节点。
请给我一个方法,我可以做到这一点?
答
用于通过FieldInternalName获取所有节点的Linq版本。
// Loading from a file, you can also load from a stream
XDocument loaded = XDocument.Load(@"d:\test.xml");
// Query the data
var query = from c in loaded.Descendants("MetadataFormConfig")
where (string)c.Attribute("FieldInternalName") == "Test"
select c;
答
你可以测试自己的XPath表达式和完善它,直到你得到你想要的结果,也有大量XPATH测试的网络商店,这里的例子是一个:http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm
只是去那里,从上面粘贴你的xml片段并使用XPATH直到你得到你所需要的。
作为输出你期望什么?一个`XmlNode`对象列表?字符串列表?什么?? – 2011-02-08 11:22:44
我想要整个制表符属性。然后我需要得到值A,B,C。 – 2011-02-08 11:25:25