2013-01-09 2 views
0

내가 성공적으로 다음과 같은 방법을 사용하여 행 노드에 사용자 정의 속성을 추가하고 속성 :OpenXML을 설정하고 검색 사용자 정의

targetRow.SetAttribute(new DocumentFormat.OpenXml.OpenXmlAttribute("Delete", null, "1")); 

을 ...하지만 다음과 같은 LINQ 쿼리를 사용하여 사용자 지정 특성을 볼 수 없습니다입니다 :

Row target = sheetData.Elements<Row>().Where(r => r.ExtendedAttributes.ElementAt(0).Value=="1").First(); 

위의 쿼리에서 'GetAttribute'메서드를 사용해도 아무런 문제가 없습니다.

어떻게해야합니까? 감사.

+0

당신은 XML을 제공시겠습니까? 'Custom Attributes'는 무엇입니까? –

답변

0

요소를 얻기 위해이 코드를 사용하여 시도하거나 속성 :

// get all elements with Delete="1" attribute 
sheetData.Elements().First(elm => elm.Attribute("Delete").Value == "1") 

//get first attribute of name Delete 
sheetData.Elements().Attributes().First(atr => atr.Name == "Delete") 

어떻게 설정하는 속성 :

var s = "<t><a Delete=\"1\"/><a /></t>";  
var xml = XElement.Parse(s); 
var atribute = xml.Elements().Attributes().First(atr => atr.Name == "Delete"); 

atribute.Value = "2"; 

//LinqPad specific call 
xml.Dump(); 

인쇄 :

<t> 
    <a Delete="2" /> 
    <a /> 
</t>