标签: xattribute

如果XElement上不存在XAttribute默认值

如果XElement上的XAttribute不存在,是否有更简单/更好的方法来返回默认值?:

我试图以更短的方式写这个(因为它是一个双线):

var a = root.Attribute("testAttribute");
var v = (a == null ? "" : a.Value);
Run Code Online (Sandbox Code Playgroud)

我的方法:通过扩展方法:

public static XAttribute Attribute(this XElement obj, string name, string defaultValue)
{
    if (obj.Attribute(name) == null)
        return new XAttribute(name, defaultValue);
    return obj.Attribute(name);
}

var v = root.Attribute("testAttribute", "").Value;
Run Code Online (Sandbox Code Playgroud)

这会产生任何副作用,如大规模的负面速度影响吗?有没有更好的方法呢?

.net c# linq xelement xattribute

16
推荐指数
1
解决办法
7160
查看次数

如何在XElement中添加更多属性?

我有一个数据结构

class BasketCondition
{
        public List<Sku> SkuList { get; set; }
        public string InnerBoolean { get; set; }
}

class Sku
{
        public string SkuName { get; set; }
        public int Quantity { get; set; }
        public int PurchaseType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在让我们为它填充一些价值

var skuList = new List<Sku>();
skuList.Add(new Sku { SkuName = "TSBECE-AA", Quantity = 2, PurchaseType = 3 });
skuList.Add(new Sku { SkuName = "TSEECE-AA", Quantity = 5, PurchaseType = 3 });

BasketCondition bc = new …
Run Code Online (Sandbox Code Playgroud)

linq-to-xml xattribute c#-4.0

5
推荐指数
2
解决办法
1万
查看次数

将xml:space添加到根元素

我有一个小问题,我认为这是一个不用脑子......但是唉......

我有一些xml,我想要做的就是xml:space="preserve"使用c#添加到根元素.

我试过这个:

var rootElem = xDoc.Root; // XDocument
rootElem.SetAttributeValue("{xml}space", "preserve");
Run Code Online (Sandbox Code Playgroud)

结果是:

<ProjectDetails xmlns="http://site/ppm" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" p3:space="preserve" xmlns:p3="xml">
Run Code Online (Sandbox Code Playgroud)

认为这相当于

<ProjectDetails xmlns="http://site/ppm" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:space="preserve">
Run Code Online (Sandbox Code Playgroud)

但由于这xml:space是一个特殊的属性,我有点怀疑.

所以:

它们是一样的吗?

有没有办法可以以"干净"的方式将其添加到文档中?

c# linq-to-xml xml-namespaces xattribute

4
推荐指数
1
解决办法
736
查看次数

如何删除XMLDocument中的特定属性?

在我的C#代码库中,我有一个XMLDocument表单:

<A>
<B>
<C mlns='blabla' yz='blablaaa'> Hi </C>
<D mlns='blabla' yz='blablaaa'> How </D>
<E mlns='blabla' yz='blablaaa'> Are </E>
<F mlns='blabla' yz='blablaaa'> You </F>
</B>
<B>
<C mlns='blabla' yz='blablaaa'> I </C>
<D mlns='blabla' yz='blablaaa'> am</D>
<E mlns='blabla' yz='blablaaa'> fine</E>
<F mlns='blabla' yz='blablaaa'> thanks</F>
</B>
</A>  
Run Code Online (Sandbox Code Playgroud)

使用Linq-to-XML或其他方法,我想删除元素包含的所有元素的mlnsyz属性B.

实现它的最佳方法是什么?

c# linq xmldocument linq-to-xml xattribute

2
推荐指数
1
解决办法
7949
查看次数

el.Attribute("...")和el.Attribute(XName.Get("..."))之间有区别吗?

在我们的生产代码中,我看到使用显式XName.Get调用读取XML属性:

var name = element.Attribute (XName.Get ("name"));
Run Code Online (Sandbox Code Playgroud)

我曾经总是将一个字符串传递给Attribute:

var name = element.Attribute ("name");
Run Code Online (Sandbox Code Playgroud)

这更具可读性,但我想知道逻辑或性能是否有任何差异.

c# xelement linq-to-xml xattribute xname

0
推荐指数
1
解决办法
1281
查看次数