【问题标题】:Operator 'Like' is not defined for types 'System.Xml.Linq.XName' and 'String'没有为类型“System.Xml.Linq.XName”和“String”定义运算符“Like”
【发布时间】:2015-07-30 22:40:11
【问题描述】:

我需要检索像“*-Font”这样的元素名称,然后检索属性值。

这是使用的 linq...

Dim categories = From dc as xelement In Xml.DescendantsAndSelf("defaults") _
let Id = lw.name _
Where Id = "*-Font" _
let FontFamily = lw.attribute("font-family").value _
let FontSize = lw.attribute("font-size").value _
Select Id, FontFamily, FontSize

这是 xml 示例...

<defaults>
    <scaling>1</scaling>
    <page-layout>2</page-layout>
    <system-layout>3</system-layout>
    <appearance>4</appearance>
    <default-font font-family="Arial" font-size="20.4"/>
    <word-font font-family="Times New Roman" font-size="10.2"/>
</defaults>

此查询失败并... 没有为类型“System.Xml.Linq.XName”和“String”定义运算符“Like”。

我进行了一次网络搜索,但没有找到 Linq to xml 和 Like 运算符。

好的,那么我如何检索所有元素名称,例如“*-Font”。

【问题讨论】:

    标签: vb.net linq-to-xml operators


    【解决方案1】:

    看起来您想使用 lw.Name.LocalName.EndsWith("-font"),但您的 LINQ 查询有 dclw... 并且似乎无法编译。这是我认为您正在寻找的完整示例:

    Dim xml =
    <defaults>
        <scaling>1</scaling>
        <page-layout>2</page-layout>
        <system-layout>3</system-layout>
        <appearance>4</appearance>
        <default-font font-family="Arial" font-size="20.4"/>
        <word-font font-family="Times New Roman" font-size="10.2"/>
    </defaults>
    
    Dim categories =
        From e In xml.Elements()
        Let Id = e.Name.LocalName
        Where Id.EndsWith("-font")
        Let FontFamily = e.Attribute("font-family").Value
        Let FontSize = e.Attribute("font-size").Value
        Select Id, FontFamily, FontSize
    

    这会导致:

    Id FontFamily 字体大小 -- ---------- -------- 默认字体 Arial 20.4 word-font Times New Roman 10.2

    编辑

    this question 所示,您可以将 XML 文字用于连字符属性(我一开始无法解决,因为 @font-family 不起作用):

    Dim categories =
        From e In xml.Elements()
        Let Id = e.Name.LocalName
        Where Id.EndsWith("-font")
        Let FontFamily = e.@<font-family>
        Let FontSize = e.@<font-size>
        Select Id, FontFamily, FontSize
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-10
      • 2014-04-27
      • 2014-09-08
      • 1970-01-01
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多