簡體   English   中英

檢查XML節點是否具有Linq C#屬性?

[英]Check if XML-node has attribute with Linq C#?

如何檢查節點是否確實具有特定屬性? 我有一個包含幾個節點的XML文件,如下所示:

<Field From="OldString" To="NewString" /> 

到目前為止,一切都很好。 問題在於該結構即將更改為某些節點將如下所示:

<Field From="OldString" To="NewString" PrefixValue="OptionalAttribute" />

現在,當存在PrefixValue時,我應該將該屬性中的值添加到字符串前面,這並不是很困難,但是當我嘗試查看PrefixValue屬性是否存在時,我遇到了一些問題。節點。 在不存在PrefixValue的情況下,該節點中根本不存在屬性PrefixValue。 我將如何檢查該屬性是否存在Linq表達式?

好吧,這取決於您要做什么。 如果要在投影中使用它,可以使用:

(string) element.Attribute("PrefixValue")

如果缺少該屬性,它將返回null,這很有用。

如果要在where子句中使用,請使用類似以下內容的方法:

where element.Attribute("PrefixValue") != null
if ((string)level1.Attribute("customer_code") != null)
{
   newBox.customer_code = (string)level1.Attribute("customer_code").Value;
}

上面的代碼應注意檢查屬性是否存在。

如果沒有if語句,您將得到一個未設置為實例錯誤的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM