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

How to add attribute to xml schema?

我在下面的内存字符串中需要检查属性 "CanToggleHidden" 是否存在,如果不存在我需要将此属性添加到字符串中,如果 "CanToggleHidden" 存在我需要将值设置为 "TRUE"。我可以使用以下代码检查 "CanToggleHidden" 是否存在。 任何帮助将不胜感激。

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());
    }
}