繁体   English   中英

在Linq to C#的XML中选择父元素的属性值

[英]Select attribute value of parent element in Linq to XML of C#

我正在使用Linq到C#的XML。 我正在尝试使用Xpath找出父属性值。 当我针对XML运行该Xpath时,它可以工作,但是以某种方式在Linq中为XML提供了错误。

错误是:

表达式必须计算为节点集。

这是XML:

<items>
   <item id="Carrier_ProductBase_Data_3_0_0_0" description="Carrier  ProductBase  Data   (3.0.0.0)" versionDate="2006-12-01">
        <keys>
            <key name="versionID" value="Carrier_ProductBaseData_00_10"/>
                    <key name="family" value="DCTTemplates"/>
                    <key name="lob" value="CarrierAdmin"/>
                    <key name="state" value="Admin"/>
                    <key name="version" value="3.0.0.0"/>
                    <key name="effectiveDateNew" value="2006-12-01"/>
                    <key name="effectiveDateRenewal" value="2006-12-01"/>
                <key name="masterID" value="DuckCreekTech_Master_US_00_20"/>
                    <key name="productCode" value="Data"/>
                </keys>
            </item> </items>


`XDocument xdoc = XDocument.Parse(this.DCTResponseXML);
var s = xdoc.XPathSelectElement("//*[@name='productCode'][@value='Data']/../../").Attribute("id").Value;`

xpath不能包含单个斜杠,而您要向上一级。 它应该是

var xpath = @"//*[@name='productCode'][@value='Data']//..//..";
var s = xdoc.XPathSelectElement(xpath). ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM