解析.net 2中的XML结构

发布于 2024-10-14 08:46:11 字数 615 浏览 2 评论 0原文

我有以下 xml 片段,

<converters c1="XXX" c2="ZZZ">
    <converter c1="YYY" c2="ZZZ" 
               buy="0.99899070428571424" sell="0.99966215285714288" />
    <converter c1="XXX" c2="YYY" 
               buy="1.5503238471428571" sell="1.550773867142857" />
    <converter c1="XXX" c2="ZZZ" 
               buy="1.5487591119281807" sell="1.5502499426226253" />
</converters>

我试图检索具有 c1="XXX" 和 c2="ZZZ" 的转换器的“购买”属性中的数字值。

不幸的是,我不能使用 linq to XML,否则这很容易(对我来说)。所以我想我被困在使用 xpath

我创建了一个 XPathNavigator 但无法获得语法来获取我想要的值

任何人,知道如何做到这一点吗?

I have the following xml fragment

<converters c1="XXX" c2="ZZZ">
    <converter c1="YYY" c2="ZZZ" 
               buy="0.99899070428571424" sell="0.99966215285714288" />
    <converter c1="XXX" c2="YYY" 
               buy="1.5503238471428571" sell="1.550773867142857" />
    <converter c1="XXX" c2="ZZZ" 
               buy="1.5487591119281807" sell="1.5502499426226253" />
</converters>

I am trying to retrieve the value of the number in the "buy" attribute for the converter that has c1="XXX" and c2="ZZZ".

I can't use linq to XML unfortunatley or this would be easy (for me). So I guess I am stuck using xpath

I've created an XPathNavigator but can't get the syntax to get the valu I want

Anyone, any idea how to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

短暂陪伴 2024-10-21 08:46:11
XmlDocument doc = new XmlDocument();
                doc.LoadXml("");
                XmlNodeList list = doc.SelectNodes("converters/converter");

                foreach (XmlNode element in list)
                {
                    if (element.Attributes["c1"].Value == "XXX" /*other operations*/) 

                }
XmlDocument doc = new XmlDocument();
                doc.LoadXml("");
                XmlNodeList list = doc.SelectNodes("converters/converter");

                foreach (XmlNode element in list)
                {
                    if (element.Attributes["c1"].Value == "XXX" /*other operations*/) 

                }
风情万种。 2024-10-21 08:46:11

如果你使用 XPathDocument 你可以这样做

foreach (XPathNavigator buy in new XPathDocument("input.xml").CreateNavigator().Select("converters/converter[@c1 = 'XXX' and @c2 = 'ZZZ']/@buy"))
{
  Console.WriteLine(buy.Value);
}

If you use XPathDocument you can do

foreach (XPathNavigator buy in new XPathDocument("input.xml").CreateNavigator().Select("converters/converter[@c1 = 'XXX' and @c2 = 'ZZZ']/@buy"))
{
  Console.WriteLine(buy.Value);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文