我有一个xml文件,如:
<?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获取所有节点。
请告诉我如何做到这一点?
答案 0 :(得分:3)
您可以使用SelectNodes("/Config/MetadataFormConfig[@FieldInternalName='Test']")
答案 1 :(得分:1)
Linq版本,用于通过FieldInternalName获取所有节点。
// 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;
答案 2 :(得分:0)
你可以测试自己的xpath表达式并对其进行优化,直到得到你想要的结果为止,有很多XPATH测试人员在线,例如这里有一个:http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm
然后去那里,从上面粘贴你的xml片段并使用XPATH,直到你得到你需要的东西。