gpt4 book ai didi

xpath - 无法让 XPathSelectElements 与 XElement 一起使用

转载 作者:行者123 更新时间:2023-12-03 15:58:03 26 4
gpt4 key购买 nike

我正在使用 XElement 创建内存中的 Xml 树。这是我的 xml 示例:

<Curve>
<Function>createCurve</Function>
<Parameters>
<Input>
<BaseCurve>
<CurveType Type="String">16fSmoothCurve</CurveType>
<Ccy Type="String">USD</Ccy>
<Tenors>
<Item Type="String">1M</Item>
<Item Type="String">3M</Item>
<Item Type="String">1U</Item>
<Item Type="String">Z1</Item>
</Tenors>
<Rates>
<Item Type="String">.02123</Item>
<Item Type="String">.02214</Item>
<Item Type="String">.021234</Item>
<Item Type="String">.02674</Item>
</Rates>
</BaseCurve>
</Input>
</Parameters>
</Curve>

我通过将 XElements 链接在一起来创建 xml。例如,

var root = new XElement("Curve", 
new XElement("Function", "createCurve"),
new XElement("Parameters"), etc);

然后我想通过 XPath 查询 XElement。例如,

var tenors = root.XPathSelectElements("//Tenors/Item");
var rates = root.XPathSelectElements("//Rates/Item");

我可以成功选择单个元素,例如,

var firstTenor = root.XPathSelectElement("//Tenors/Item");
var firstRate = root.XPathSelectElement("//Rates/Item");

但是,尝试选择多个元素会得到 0 个结果。

我已经尝试创建一个 XDocument 并对其进行查询,但是我得到了相同的结果。我也尝试过将 XDeclaration 添加到树的开头,但没有成功。

为什么我不能从我的 XElement 树中查询多个元素?

谢谢!

德鲁

最佳答案

使用 XmlNodeList:

XmlNodeList nodesXml = root.SelectNodes("//Tenors/Item");
foreach (XmlNode item in nodList)
{
var tenors = item.InnerText;
}

这就是我所做的,而且效果完美。

关于xpath - 无法让 XPathSelectElements 与 XElement 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7153596/

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