【发布时间】:2017-05-17 15:25:19
【问题描述】:
我在下面有一个我的 XML 示例(我在检查之前将其从 SGML 转换为 XML,但这不是重点)。 XML 在检查时有效。
我需要检查 XDocument 并找出文件顶部 <status> 部分中包含的任何 <version> 元素是否包含属性“RNWB”。我需要明确说明我只对检查作为<status> 元素的子元素的<version> 元素感兴趣,因为文档中可能还有我不关心的其他<version> 元素。
<dmodule>
<idstatus>
<dmaddres>
<dmc>Blah</dmc>
<dmtitle><techname>System</techname><infoname>Introduction</infoname></dmtitle>
<issno issno="006" type="revised"/>
<issdate year="2016" month="11" day="30"/>
</dmaddres>
<status>
<security class="2"/>
<rpc></rpc>
<orig></orig>
<applic>
<model model="2093">
<version version="BASE"></version>
<version version="RNWB"></version></model>
</applic>
<techstd>
<autandtp>
<authblk></authblk>
<tpbase></tpbase>
</autandtp>
<authex></authex>
<notes></notes>
</techstd>
<qa>
<firstver type="tabtop"/></qa>
<remarks></remarks>
</status>
</idstatus>
<content>
<refs><norefs></refs>
<descript>
<para0><title>Introduction</title>
<para>The system many new features included which are safe and accurate blah blah blah.</para>
</descript>
</content>
</dmodule>
我已经尝试了各种方法,但似乎无法获得结果。这是我尝试过的一个示例:
var result = (from ele in doc.Descendants("applic").Descendants("version").Attributes("RNWB")
select ele).ToList();
foreach (var v in result)
{
File.Move(file, Path.Combine(outputFolder, fileName)); // move the file to the new folder
}
【问题讨论】:
标签: c# xml linq-to-xml xelement