本帖最后由 lgzy0220 于 2014-08-28 09:52:48 编辑

解决方案 »

  1.   

    attribute.Equals("") ? xn.InnerText : xn.Attributes[attribute].Value
    =>
    if(attribute.Equals(""))
    {
    xn.InnerText 
    }
    else
    {
    xn.Attributes[attribute].Value
    }
      

  2.   

    三目运算符
    <表达式1>?<表达式2>:<表达式3>
    "?"运算符的含义是: 先求表达式1的值:
    如果表达式1的值为真, 则执行表达式2,并返回表达式2的结果 ; 
    如果表达式1的值为假, 则执行表达式3 ,并返回表达式3的结果.
      

  3.   


    我直接给你解释什么意思吧。xn是获取xml一个节点,attribute是xml的节点,xn.Attributes[attribute].Value 这句是:节点.所有节点属性[节点属性名称].值value = (节点的属性是否为“”)?如果是的话,返回xn的节点值:如果不是的话,返回xn节点值
      

  4.   

    value = (节点的属性是否为“”)?如果是的话,返回xn的节点值:如果不是的话,返回xn节点属性值手残了 - -
      

  5.   

    value=a?b:c
    a结果是True则value=b,否则就是c
      

  6.   

    <逻辑表达式,返回bool>?<返回值表达式A>:<返回值表达式B>;
    首先执行逻辑表达式,如果为True,就执行并返回A的值,如果为False就执行并返回B的值。
    注意:A和B的返回类型必须一样!
    这个三目运算表达式也可以表示为下面这个意思:if(逻辑表达式)
    {
        return 返回值表达式A;
    }
    else
    {
        return 返回值表达式B;
    }(貌似上面这个不太准确)
      

  7.   

    这是条件语句,"?"前是条件,条件成立则返回“:”前的值,否则返回”:“后的值
    value = (attribute.Equals("") ? xn.InnerText : xn.Attributes[attribute].Value);
    即:如果attribute.Equals("")为true,则value =   xn.InnerText,否则 value =xn.Attributes[attribute].Value