C# 检查元素(记录)是否存在?
如何检查C# 检查元素(记录)是否存在?,c#,linq,linq-to-xml,C#,Linq,Linq To Xml,如何检查XElement是否具有记录和INVID属性? 我的函数只返回单个元素。i、 e <INVENTORY> <Record> <INVID>1315</INVID> <INVNAME>TEST LOCATIONTEST</INVNAME> <HOSPNAME>TEST LOCATION</HOSPNAME> <INVTYPE>CLINICAL<
XElement
是否具有记录和INVID属性?
我的函数只返回单个元素。i、 e
<INVENTORY>
<Record>
<INVID>1315</INVID>
<INVNAME>TEST LOCATIONTEST</INVNAME>
<HOSPNAME>TEST LOCATION</HOSPNAME>
<INVTYPE>CLINICAL</INVTYPE>
<INVDT>2013-09-30T09:30:00</INVDT>
<INVDEF>YES</INVDEF>
<INVACT>YES</INVACT>
<UPDDTTM />
<UPDUSR />
<ENBREF>true</ENBREF>
<INVPWD>101315</INVPWD>
</Record>
</INVENTORY>
XElement xInventory = GetDefaultInventory();
bool hasInventory = xInventory.Elements("INVID").Any(); //What to do here ?
if (hasInventory)
{
//TO DO Some action
}
1315
测试位置测试
测试位置
临床的
2013-09-30T09:30:00
对
对
真的
101315
XElement xInventory=GetDefaultInventory();
bool hasventory=xInventory.Elements(“INVID”).Any()//在这里做什么?
if(库存)
{
//采取行动
}
这个怎么样:
bool hasInventory = xInventory.Elements("Record").Any() && xInventory.Descendants("INVID").Any();
这将检查
xInventory
元素是否有直接的子Record
,如果有,则检查xInventory
是否有子元素INVID
如果要检查inventory元素是否有Record
元素和INVID
子元素,则可以使用XPath:
XElement inventory = GetDefaultInventory();
XElement invid = inventory.XPathSelectElement("Record/INVID");
if (invid == null)
// not exist
或林奇道:
bool exists = inventory.Elements("Record").Elements("INVID").Any();
我试过LINQ,效果很好!谢谢你@Sergey Berezovskiy