gpt4 book ai didi

c# - 选择子节点,但使用 XPath 忽略非元素?

转载 作者:太空宇宙 更新时间:2023-11-03 20:33:45 25 4
gpt4 key购买 nike

例如给定以下 XML 文档:

<?xml version="1.0"?>
<UrdaObject>
<Date>
<Year>2011</Year>
<Month>5</Month>
<Day>18</Day>
<Hours>8</Hours>
<Minutes>47</Minutes>
<Seconds>36</Seconds>
</Date>
<random_value>24</random_value>
</UrdaObject>

理解 child::node() - 选择当前节点的所有子节点 我将如何创建一个 XPath(从根开始)选择除文本、评论和其他非元素之外的所有子节点。例如,当使用此代码在 WPF 中创建 TreeView 时:

// x is some XmlDocument, xmlTree is my WPF TreeView
XmlDataProvider provider = new XmlDataProvider();
provider.Document = x;
Binding binding = new Binding();
binding.Source = provider;
binding.XPath = "child::node()";
xmlTree.SetBinding(TreeView.ItemsSourceProperty, binding);

我将如何着手创建我的 XPath 语句以便构建一个 TreeView ,其中的节点一直向下并在原始文本之前停止?例如,它会生成一个 View :

UrdaObject
Date
Year
...

而不是...

UrdaObject
Date
Year
2011 (Don't want this!)
...

示例 XML 文件仅供我解释我的情况。该表达式应该能够导航任何有效的 XML 文件并提取元素,但不能提取单个文本。


我们是如何解决这个问题的?我已经将 child::node() 的所有引用都切换到了 child::*。但是,我没有更正我的 XAML 中的一行,它正在拉动 child::node()。更正此行使应用程序正常运行......让我觉得很傻。

最佳答案

child::node() 查找所有子节点。 child::* 找到所有 element 节点。

关于c# - 选择子节点,但使用 XPath 忽略非元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6048168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com