在XQuery中省略空返回值

在XQuery中省略空返回值,xquery,Xquery,我有一个XQuery返回语句,如: return <li> <h3>{ string($TELECAST/title/maintitle) }</h3> <h4>{ string($TELECAST/title/subtitle) }</h4> <h5>{ string($TELECAST/title/description) }</h5> </li> 返回 {string($TELEC

我有一个XQuery返回语句,如:

return
 <li>
 <h3>{ string($TELECAST/title/maintitle) }</h3>
 <h4>{ string($TELECAST/title/subtitle) }</h4>
 <h5>{ string($TELECAST/title/description) }</h5>
 </li>
返回
  • {string($TELECAST/title/mainttitle)} {string($telecoast/title/subtitle)} {string($telecoast/title/description)}

  • 有时,没有字幕或描述,仍然会输出HTML标记。如何轻松检查空字符串并省略不必要的标记?

    您可以使用该函数。但是,请记住,该功能不会自动修剪空白。

    您可以使用该功能。但是,请记住,该函数不会自动修剪空白。

    例如,如下所示:

    return
     <li> {
     for $i in $TELECAST/title/maintitle return <h3>{ string($i) }</h3>,
     for $i in $TELECAST/title/subtitle return <h4>{ string($i) }</h4>,
     for $i in $TELECAST/title/description return <h5>{ string($i) }</h5>
     } </li>
    
    返回
    
  • { 对于$TELECAST/title/mainttitle返回{string($i)}中的$i, 对于$TELECAST/title/subtitle返回{string($i)}中的$i, 对于$TELECAST/title/description中的$i,返回{string($i)} }

  • 例如,如下所示:

    return
     <li> {
     for $i in $TELECAST/title/maintitle return <h3>{ string($i) }</h3>,
     for $i in $TELECAST/title/subtitle return <h4>{ string($i) }</h4>,
     for $i in $TELECAST/title/description return <h5>{ string($i) }</h5>
     } </li>
    
    返回
    
  • { 对于$TELECAST/title/mainttitle返回{string($i)}中的$i, 对于$TELECAST/title/subtitle返回{string($i)}中的$i, 对于$TELECAST/title/description中的$i,返回{string($i)} }

  • 在不使用函数的情况下,此XQuery表达式:

    <ul>{
       for $TELECAST in /root/telecast
       return
          <li>{
             for $item in $TELECAST/title/*
             return
                typeswitch($item)
                case element(maintitle) return <h3>{string($item)}</h3>
                case element(subtitle) return <h4>{string($item)}</h4>
                case element(description) return <h5>{string($item)}</h5>
                default return ()
          }</li>
    }</ul>
    
      { 在/root/TELECAST中进行$TELECAST 返回
    • { 对于$TELECAST/标题中的$item/* 返回 打字开关($项) case元素(mainttitle)返回{string($item)} case元素(subtitle)返回{string($item)} case元素(description)返回{string($item)} 默认返回() }
    • }
    通过此输入:

    <root>
        <telecast>
            <title>
                <maintitle>Title</maintitle>
                <subtitle>Subtitle</subtitle>
                <description>Description</description>
            </title>
        </telecast>
        <telecast>
            <title>
                <maintitle>Title2</maintitle>
                <description>Description2</description>
            </title>
        </telecast>
    </root>
    
    
    标题
    字幕
    描述
    标题2
    说明2
    
    输出:

    <ul>
        <li>
            <h3>Title</h3>
            <h4>Subtitle</h4>
            <h5>Description</h5>
        </li>
        <li>
            <h3>Title2</h3>
            <h5>Description2</h5>
        </li>
    </ul>
    
    • 标题 字幕 描述
    • 标题2 说明2

    在不使用函数的情况下,此XQuery表达式:

    <ul>{
       for $TELECAST in /root/telecast
       return
          <li>{
             for $item in $TELECAST/title/*
             return
                typeswitch($item)
                case element(maintitle) return <h3>{string($item)}</h3>
                case element(subtitle) return <h4>{string($item)}</h4>
                case element(description) return <h5>{string($item)}</h5>
                default return ()
          }</li>
    }</ul>
    
      { 在/root/TELECAST中进行$TELECAST 返回
    • { 对于$TELECAST/标题中的$item/* 返回 打字开关($项) case元素(mainttitle)返回{string($item)} case元素(subtitle)返回{string($item)} case元素(description)返回{string($item)} 默认返回() }
    • }
    通过此输入:

    <root>
        <telecast>
            <title>
                <maintitle>Title</maintitle>
                <subtitle>Subtitle</subtitle>
                <description>Description</description>
            </title>
        </telecast>
        <telecast>
            <title>
                <maintitle>Title2</maintitle>
                <description>Description2</description>
            </title>
        </telecast>
    </root>
    
    
    标题
    字幕
    描述
    标题2
    说明2
    
    输出:

    <ul>
        <li>
            <h3>Title</h3>
            <h4>Subtitle</h4>
            <h5>Description</h5>
        </li>
        <li>
            <h3>Title2</h3>
            <h5>Description2</h5>
        </li>
    </ul>
    
    • 标题 字幕 描述
    • 标题2 说明2

    看起来您可以检查一个项目是否是,或者它看起来是否是一个项目您可以检查一个项目是否是,或者一个项目
    XPST0003 XQuery语法错误是否在#…字符串($i)}附近为$#:预期为“}”,为“
    找到”谢谢,这似乎是这里最简单的解决方案<代码>XPST0003 XQuery语法错误#…字符串($i)}附近的$#:预期为“}”,发现为“谢谢,这似乎是这里最简单的解决方案!