我正在尝试直接从sql query (TSQL,sql server2008 r2)中获取html。我在其中一个字段中有下面的xml,我需要通过ul列表解析每日日程表,主题标题只列出一次,而不是每个主题。我不被允许改变xml数据的格式。
我应该如何修改这个select子句来完成它?
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>谢谢你有什么想法吗?
发布于 2011-09-06 16:21:42
尝试如下所示:
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。
https://stackoverflow.com/questions/7312571
复制相似问题