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");

Xaml中的XPath选择节点

试试这个

//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