2017-06-27 38 views
1

我有一個包含以下類型元素的XML文件中的元素:C#的LINQ to XML獲得其中name的值包含特定字符串

<add name="$(ReferAEP)" value="$(addressA)" /> 
<add name="$(ReferBEP)" value="$(addressB)" /> 

什麼的LINQ to XML查詢只得到元素,其中「名稱「屬性包含一個值,如* EP?所以上述兩個要素最終會在結果中出現?

+0

標籤名稱是否始終爲「添加」? – jdweng

+0

@jdweng:是的,但是還有其他的元素,其中xyz不包含名稱=「xyz」EP – Arjang

+0

@BalagurunathanMarimuthu:這只是如何幫助限制僅包含某些名稱值? – Arjang

回答

3

如果你對你的問題等指定的XML標記的外部元素:

<adds> 
    <add name="$(ReferAEP)" value="$(addressA)" /> 
    <add name="$(ReferBEP)" value="$(addressB)" /> 
</adds> 

然後用下面的LINQ查詢:

var query = from d in xdoc.Descendants("adds").Descendants() 
      where d.Attribute("name")?.Value.Contains("EP") 
      select d; 
+2

打敗我吧。雖然我會使用'EndsWith()'而不是'Contains()'。 – Guy

2

你在尋找類似

document.Descendants("add").Where(element => element.Attribute("name").Value.EndsWith("EP)")); 
+0

只是想知道這是否將工作,因爲'名稱'以'EP'結尾)' – Sid

+0

@Sid謝謝,修正。 – Guy

+0

幹得好;)其實我更喜歡你的'Habeeb'答案,即使兩者都有效。 +1 – Sid