Как добавить атрибуты в XML с помощью XmlDocument в c # .net CF 3.5

Следующие регулярные выражения будут соответствовать всем запятым, которые присутствуют вне двойных кавычек,

,(?=(?:[^"]*"[^"]*")*[^"]*$)

DEMO

ИЛИ (только для PCRE)

"[^"]*"(*SKIP)(*F)|,

"[^"]*" соответствует всем блокам с двойными кавычками. То есть в этом входе buz,"bar,foo" это регулярное выражение будет соответствовать только "bar,foo". Теперь следующий (*SKIP)(*F) делает совпадение неудачным. Затем он переходит к шаблону, который был рядом с символом | и пытается совместить символы с оставшейся строкой. То есть в нашем выходе , рядом с шаблоном | будет соответствовать только запятая, которая была сразу после buz. Обратите внимание, что это не будет соответствовать запятой, которая присутствовала внутри двойных кавычек, потому что мы уже пропустили пропущенную двойную кавычку.

DEMO


. Следующее регулярное выражение будет соответствовать всем запятым, которые присутствуют внутри двойных кавычек,

,(?!(?:[^"]*"[^"]*")*[^"]*$)

DEMO

13
задан Vicky 4 August 2010 в 12:02
поделиться

1 ответ

Я считаю, что это просто вопрос установки соответствующего атрибута непосредственно на корневом узле. Вот пример программы:

using System;
using System.Globalization;
using System.Xml;

class Test
{
    static void Main()
    {
        XmlDocument doc = new XmlDocument();
        XmlElement root = doc.CreateElement("root");

        string ns = "http://sample/namespace";
        XmlAttribute nsAttribute = doc.CreateAttribute("xmlns", "xx",
            "http://www.w3.org/2000/xmlns/");
        nsAttribute.Value = ns;
        root.Attributes.Append(nsAttribute);

        doc.AppendChild(root);
        XmlElement child = doc.CreateElement("child");
        root.AppendChild(child);
        XmlAttribute newAttribute = doc.CreateAttribute("xx","abc", ns);
        newAttribute.Value = "ddd";        
        child.Attributes.Append(newAttribute);

        doc.Save(Console.Out);
    }
}

Вывод:

<?xml version="1.0" encoding="ibm850"?>
<root xmlns:xx="http://sample/namespace">
  <child xx:abc="ddd" />
</root>
36
ответ дан 1 December 2019 в 07:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: