C# 包含数学表达式的XPath
以下一行:C# 包含数学表达式的XPath,c#,xpath,linq-to-xml,C#,Xpath,Linq To Xml,以下一行: string cellData = d.XPathSelectElement(cellSelector).Value; 引发异常,声明“XPath表达式计算为意外类型System.Double。” 单元格选择器包含:“./单位*/产品/成本” 元素d中的数据为: <LineItem> <product> <ProductId>22</ProductId> <ProductName>Car Cleanin
string cellData = d.XPathSelectElement(cellSelector).Value;
引发异常,声明“XPath表达式计算为意外类型System.Double。”
单元格选择器包含:“./单位*/产品/成本”
元素d中的数据为:
<LineItem>
<product>
<ProductId>22</ProductId>
<ProductName>Car Cleaning</ProductName>
<Cost>26.02</Cost>
</product>
<Units>2</Units>
</LineItem>
22
洗车
26.02
2.
在本例中,我需要该行的输出为“52.04”,更理想的是,我希望它为“52.04英镑”
XPathExpression必须是什么样子才能实现这一点
我尝试将表达式更改为“String(./Units*/product/Cost)”,但这会生成异常“XPath表达式计算为意外类型System.String”。我希望它能正常工作。似乎就是您想要的:
var cellData = xml.XPathEvaluate("./Units * ./product/Cost");
cellData = string.Format("£ {0}", cellData);
// result: cellData == "£ 52,04"
期望XPath表达式expr
的计算结果是一个元素(如方法名称所示)
在本例中,您需要使用另一种方法,该方法允许任何XPath表达式(而不仅仅是选择元素的表达式)作为参数
就是这样一种方法