首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xquery for inside for

Xquery for inside for
EN

Stack Overflow用户
提问于 2011-09-06 04:43:53
回答 1查看 1.4K关注 0票数 1

我正在尝试直接从sql query (TSQL,sql server2008 r2)中获取html。我在其中一个字段中有下面的xml,我需要通过ul列表解析每日日程表,主题标题只列出一次,而不是每个主题。我不被允许改变xml数据的格式。

我应该如何修改这个select子句来完成它?

代码语言:javascript
复制
select  Day1Schedule = T.Item.query
                                ('
                                    for $a in //Schedule/Day[@Number="1"]/Topic
                                    for $b in $a/Subject
                                               return 
                                        <ul>
                                        <li>
                                        <strong>
                                        {$a/Header/text()}
                                        </strong>
                                        </li>
                                        <li>
                                            {$b/text()}
                                        </li>
                                    </ul>
                                ')


<Schedule>
<Day Number="1">
    <Topic>
        <Header>Topic1</Header>
        <Subject>T1Subject1</Subject>
        <Subject>T1Subject2</Subject>
        <Subject>T1Subject3</Subject>
        <Subject>T1Subject4</Subject>
        <Subject>T1Subject5</Subject>
    </Topic>
    <Topic>
        <Header>Topic2</Header>
        <Subject>T2Subject1</Subject>
    </Topic>
    <Topic>
        <Header>Topic3</Header>
        <Subject>T3Subject1</Subject>
        <Subject>T3Subject2</Subject>
        <Subject>T3Subject3</Subject>
    </Topic>
</Day>
<Day Number="2">
    <Topic>
        <Header>Topic1</Header>
        <Subject>T1Subject1</Subject>
        <Subject>T1Subject2</Subject>
        <Subject>T1Subject3</Subject>
        <Subject>T1Subject4</Subject>
        <Subject>T1Subject5</Subject>
    </Topic>
    <Topic>
        <Header>Topic2</Header>
        <Subject>T2Subject1</Subject>
    </Topic>
    <Topic>
        <Header>Topic3</Header>
        <Subject>T3Subject1</Subject>
        <Subject>T3Subject2</Subject>
        <Subject>T3Subject3</Subject>
    </Topic>
</Day>
<Day Number="3">
    <Topic>
        <Header>Topic1</Header>
        <Subject>T1Subject1</Subject>
        <Subject>T1Subject2</Subject>
        <Subject>T1Subject3</Subject>
        <Subject>T1Subject4</Subject>
        <Subject>T1Subject5</Subject>
    </Topic>
    <Topic>
        <Header>Topic2</Header>
        <Subject>T2Subject1</Subject>
    </Topic>
    <Topic>
        <Header>Topic3</Header>
        <Subject>T3Subject1</Subject>
        <Subject>T3Subject2</Subject>
        <Subject>T3Subject3</Subject>
    </Topic>
</Day>
 </Schedule>

谢谢你有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-06 16:21:42

尝试如下所示:

代码语言:javascript
复制
for $a in //Schedule/Day[@Number="1"]/Topic
return <ul>
           <li><strong>{$a/Header/text()}</strong></li>
           {for $b in $a/Subject
           return <li>{$b/text()}</li>}
       </ul>

它为每个主题恰好返回一次Header。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7312571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档