我正在尝试使用xpath
解析c#中的xmlSort
因此,“Shape”标签可以位于“Slide”标签下,也可以位于“Presentation”标签下。有没有办法用xpath获取两个节点?
答案 0 :(得分:2)
所有具有祖先幻灯片和演示文稿的形状
//Shape[ancestor::Slide and ancestor::Presentation]
仅适用于您的xml
Element='<Shape Name="Title">
<FontSize Value="36" />
</Shape>'
如果您想确保演示文稿高于幻灯片:
//Shape[ancestor::Slide[ancestor::Presentation]]
答案 1 :(得分:0)
您可以使用类似的内容(假设doc
XElement
已加载xml)
doc.XPathSelectElements("//Shape");
此处XPath表达式//Shape
从<Shape>
节点中选择文档中的所有doc
节点,无论它们在何处。
答案 2 :(得分:0)
您可以使用linq to xml并执行类似
的操作var xmlparsed = XElement.Parse(xml);
var shapes = xmlparsed.Elements().Descendants("Shape");
答案 3 :(得分:0)
只需使用Xpath
//Shape
这将为您提供形状节点
<Shape Name="Title">
<FontSize Value="36" />
</Shape>
<Shape Name="Title">
<FontSize Value="36" />
</Shape>