如何将属性添加到xml模式?

如何将属性添加到xml模式?

问题描述:

我有以下内存字符串,我需要检查属性“CanToggleHidden”是否存在,如果不存在我需要将此属性添加到字符串,如果“CanToggleHidden”存在,我需要将值设置为“TRUE” 。我能够检查“CanToggleHidden”存在或不使用下面的代码。 任何帮助将不胜感激。如何将属性添加到xml模式?

TextReader objTextReader = new StringReader(fieldSchemaXml); 
XmlTextReader reader = new XmlTextReader(objTextReader); 
reader.Read(); 
if (reader.GetAttribute("CanToggleHidden") == null) 
{ 
} 

下面是字符串

"<Field ID=\"{b77cdbcf-5dce-4937-85a7-9fc202705c91}\" Group=\"_Hidden\" SourceID=\"http://schemas.microsoft.com/sharepoint/v4\" Name=\"IconOverlay\" StaticName=\"IconOverlay\" DisplayName=\"IconOverlay\" Type=\"Text\" Required=\"FALSE\" AllowDeletion=\"TRUE\" Version=\"6\" Sealed=\"FALSE\" Hidden=\"TRUE\" CanToggleHidden=\"TRUE\" />" 

您可以使用下面,首先解析字符串作为一个适当的XmlDocument。然后得到根节点(作为字符串只包含一个节点,如果不是这样的话,你需要做一个doc.GetElementById()

[TestClass] 
public class UnitTest1 
{ 
    [TestMethod] 
    public void TestMethod1() 
    { 
     XmlDocument doc = new XmlDocument(); 

     doc.LoadXml("<Field ID=\"{b77cdbcf-5dce-4937-85a7-9fc202705c91}\" Group=\"_Hidden\" SourceID=\"http://schemas.microsoft.com/sharepoint/v4\" Name=\"IconOverlay\" StaticName=\"IconOverlay\" DisplayName=\"IconOverlay\" Type=\"Text\" Required=\"FALSE\" AllowDeletion=\"TRUE\" Version=\"6\" Sealed=\"FALSE\" Hidden=\"TRUE\" CanToggleHidden=\"TRUE\" />"); 

     var element = doc.DocumentElement; 
     if (element.Attributes["CanToggleHidden"] != null) 
      element.SetAttribute("CanToggleHidden", "TRUE"); 

     Console.WriteLine(doc.ToString()); 
    } 
} 
+0

效果很不错,谢谢。 –