Xaml中的XPath选择节点
本文关键字:节点 选择 XPath 中的 Xaml | 更新日期: 2023-09-27 18:03:59
我想在一个xml文件中匹配一个节点,我的文件看起来像这样:
一些Xaml(类xml)输入:
<SomeNode> <!-- this is root btw -->
<!-- [...] -->
<SomeNode.AnyProperty>
<!-- [...] -->
</SomeNode.AnyProperty>
<!-- [...] -->
</SomeNode>
,我只想计算部分' SomeNode.AnyProperty
'。之后,我想用生成的节点替换这个找到的节点。
对于工作的XPath
表达式有什么建议吗?我尝试了一些常见的表达式,就像我在一个普通的xml文件上应用的表达式一样:" someode . anyproperty "但可以肯定的是,这并没有起作用。
工作方案:
感谢大家的支持。问题不在于XPath
表达本身。此外,它是我的xaml输入文件的名称空间声明。为了避免这个命名空间的问题,我使用了一个修改版本的@malkam解决方案。
XDocument doc = XDocument.Load("someFile.xaml");
//Get required element
XElement nodeToReplace = doc.Elements().Where(x => x.Name.LocalName == "SomeNode.AnyProperty").FirstOrDefault() as XElement;
//replace it with requried element
nodeToReplace.ReplaceWith(someOtherNodeIGeneratedEarlier);
doc.Save("someFile_editet.xaml");
试试这个
//Load xml in XElement
string xml="xml";
XElement xmlTree=XElement.Parse(xml);
//Get required element
XElement child = xmlTree.Element("SomeNode.AnyProperty");
//replace it with requried element
child.ReplaceWith(
new XElement("NewChild", "new content")
);
详情请参阅下面的链接。
http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement_methods%28v=vs.110%29.aspx http://msdn.microsoft.com/en-IN/library/bb302711.aspx