Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 XElement Name с двоеточием  [new]
AHTOH_L
Member

Откуда: Нижний Новгород
Сообщений: 451
Создаю XML примерно так

XDocument doc = new XDocument();
            XNamespace nsa = "u";
            XElement XEl=
                new XElement("UBS", new XAttribute(XNamespace.Xmlns + "u", "http://www.www"),
                    new XElement("P" , new XAttribute("r", "1"),
                        new XElement("S", new XAttribute("n", "SID"), new XAttribute("v", "ЗАЯВЛЕНИЕ")
                            )
                        
                        )
                    
                    );
            
            doc.Add(XEl);
            
            doc.Save("inv.xml");


Получается что то вроде
<?xml version="1.0" encoding="utf-8"?>
<UBS xmlns:u="http://www.www">
  <P r="1" >
    <S n="SID" v="ЗАЯВЛЕНИЕ" />
  </P>
</UBS_TRANSFER>


Как сделать чтобы было так:
<?xml version="1.0" encoding="utf-8"?>
<u:UBS xmlns:u="http://www.www">
  <u:P r="1" >
    <u:S n="SID" v="ЗАЯВЛЕНИЕ" />
  </u:P>
</u:UBS_TRANSFER>


доки и гугл смотрел ни чего толкового не нашёл.
3 сен 12, 17:17    [13107352]     Ответить | Цитировать Сообщить модератору
 Re: XElement Name с двоеточием  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
var doc = new XDocument();
var XEl =
    XHtml.Element("UBS", new XAttribute(XNamespace.Xmlns + "u", "http://www.www"),
        XHtml.Element("P", new XAttribute("r", "1"),
            XHtml.Element("S", new XAttribute("n", "SID"), new XAttribute("v", "ЗАЯВЛЕНИЕ")
                )
            )
        );

doc.Add(XEl);
doc.Save("inv.xml");


+ XHtml
public static class XHtml 
{ 
    static XHtml() 
    { 
        Namespace = "http://www.www"; 
    } 
        
    public static XNamespace Namespace { get; private set; } 

    public static XElement Element(string name)
    {
        return new XElement(Namespace + name);
    }
        
    public static XElement Element(string name, params object[] content) 
    { 
        return new XElement(Namespace + name, content);
    }
        
    public static XElement Element(string name, object content)
    { 
        return new XElement(Namespace + name, content); 
    } 
        
    public static XAttribute Attribute(string name, object value) 
    { 
        return new XAttribute(/* Namespace + */ name, value); }
        
    public static XText Text(string text) 
    { 
        return new XText(text);
    } 
        
    public static XElement A(string url, params object[] content)
    { 
        XElement result = Element("a", content); result.Add(Attribute("href", url)); return result; 
    } 
} 
3 сен 12, 19:32    [13108282]     Ответить | Цитировать Сообщить модератору
 Re: XElement Name с двоеточием  [new]
AHTOH_L
Member

Откуда: Нижний Новгород
Сообщений: 451
МСУ Спасибо.
А родными средствами linq2xml это можно как то сделать?
3 сен 12, 19:47    [13108318]     Ответить | Цитировать Сообщить модератору
 Re: XElement Name с двоеточием  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
AHTOH_L
МСУ Спасибо.
А родными средствами linq2xml это можно как то сделать?

Так XElement это и есть linq to xml.
3 сен 12, 20:06    [13108375]     Ответить | Цитировать Сообщить модератору
 Re: XElement Name с двоеточием  [new]
AHTOH_L
Member

Откуда: Нижний Новгород
Сообщений: 451
МСУ, это понятно, я про то чтобы как то удобно, например как с атрибутом new XAttribute(XNamespace.Xmlns + "u", "http://www.www") и добавилось всё что надо. Почему бы так же с XElement не сделать :( .
4 сен 12, 11:12    [13110121]     Ответить | Цитировать Сообщить модератору
 Re: XElement Name с двоеточием  [new]
bazile
Member

Откуда:
Сообщений: 3082
AHTOH_L,

XDocument doc = new XDocument();
XNamespace nsa = "http://www.www";
XElement XEl = new XElement(nsa+"UBS",
	new XElement(nsa+"P" ,
		new XAttribute(nsa+"r", "1"),
		new XElement(nsa+"S",
			new XAttribute(nsa+"n", "SID"),
			new XAttribute(nsa+"v", "ЗАЯВЛЕНИЕ")
		)
	)
);
XEl.SetAttributeValue(XNamespace.Xmlns + "u", nsa);
doc.Add(XEl);
4 сен 12, 11:56    [13110404]     Ответить | Цитировать Сообщить модератору
 Re: XElement Name с двоеточием  [new]
AHTOH_L
Member

Откуда: Нижний Новгород
Сообщений: 451
bazile, спасибо
4 сен 12, 13:37    [13111244]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить