查找 XDocument 上的节点位置

Finding the node position on an XDocument

提问人:Nodoid 提问时间:10/10/2023 更新时间:10/10/2023 访问量:42

问:

我正在研究 XIB 到 XAML(Xam.Forms 和 .NET MAUI)转换器。我已经从 XIB 生成了大量连接,但在构造 XAML 时遇到了障碍。

我的旧方法是获取每个连接,根据连接抓取片段并将其放入 .这种工作是有效的,但它使 XAML 有点混乱,如果你有 View 本身的内部,真的会把事情搞砸(内部的元素需要保存在 XAML 中AbsoluteLayoutUIScrollViewUIscrollviewScrollView)

为了确保正确生成 XAML,我正在尝试实现一个索引系统,以便像 a 这样的元素包含在其中。UITabBarUIScorllView

我的问题是,对于这些容器类型,我有一个来自连接器的 ID,但找不到节点的索引。

我的代码中有以下内容

// I've read the xib in and obtained the connections
// I then iterate through the connections to get the property and destination
// which is stored in a dictionary<string, string>
// now to find the id from the dictionary.Value

var d = XDocument.Load(infile);
var nod = d.Descendants();
foreach (var t in Outlets.Values) 
{
    var c = 0;
    if (d.Root.Attribute("id").Value == t)
    {
        // I have the correct id for the connection
        // how do I get the index for this subview 
        // or am I better off storing the subview fragment
        // parsing that, then the next etc.
    }
}

该属性与目标匹配,因此 if 检查有效,但是,我在 XIB 中找不到该行的索引,因此无法解析该子视图中的对象id

分析 LINQ-to-XML MAUI

评论

0赞 dbc 10/10/2023
我不完全清楚你所说的“节点索引”是什么意思,但你可以使用获取 XPath 到 XElement?。然后,给定一个 XPath,使用 XPathSelectElements 获取该元素。这回答了你的问题吗?

答: 暂无答案