OpenXML设置和检索自定义属性

时间:2013-01-09 15:48:06

标签: linq 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'方法,但无济于事。

我该怎么做?感谢。

1 个答案:

答案 0 :(得分: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>