<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>xikus&apos;s blog</title><description>尽量晚一点投降</description><link>https://xikus.github.io/</link><language>zh_CN</language><item><title>OpenClaw连接Discord中遇到的问题</title><link>https://xikus.github.io/posts/openclaw%E8%BF%9E%E6%8E%A5discord%E4%B8%AD%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98/</link><guid isPermaLink="true">https://xikus.github.io/posts/openclaw%E8%BF%9E%E6%8E%A5discord%E4%B8%AD%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98/</guid><description>OpenClaw连接Discord过程中遇到的问题与解决经验</description><pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;AI正在重塑开发者的工作流：一次精准的Prompt，往往抵得上过去数小时的信息检索与反复试错。然而，面对OpenClaw这类新兴项目时，AI的短板也显露无疑：一方面，AI生成的内容同质化严重，面对冷门Bug缺少解决方案；另一方面，相比PyTorch、OpenCV等成熟生态，社区尚未沉淀出体系化的教程，而官方教程对于新手来说相对困难。这篇文章记录了我配置OpenClaw channels的经验，希望能帮后来者少踩几个我踩过的坑。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;为什么选择Discord&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;../../assets/images/Pasted%20image%2020260309092840.png&quot; alt=&quot;alt text&quot; /&gt;
&lt;img src=&quot;../../assets/images/Pasted%20image%2020260309092910.png&quot; alt=&quot;alt text&quot; /&gt;（上图出处：https://open-claw.me/zh/channels）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在目前Openclaw支持的Channel中，可以看出，Discord的配置难度相对较低，功能丰富，支持文本、富文本等多种格式。&lt;/li&gt;
&lt;li&gt;Telegram当然也是一个很好的选择，但由于现实的原因，其配置相对困难。&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;[!note]
&lt;a href=&quot;https://lumadock.com/tutorials/connect-openclaw-to-discord?language=romanian&quot;&gt;参考教程：How to connect OpenClaw to Discord: Integration guide&lt;/a&gt;
大部分设置可以根据&lt;strong&gt;参考教程&lt;/strong&gt;一步步来，下文是我在配置过程中遇到的问题与经验&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;如何查看Channel连接情况&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;使用&lt;code&gt;openclaw channels status&lt;/code&gt;命令
&lt;img src=&quot;../../assets/images/Pasted%20image%2020260309125039.png&quot; alt=&quot;alt text&quot; /&gt;
&lt;ul&gt;
&lt;li&gt;reachable：OpenClaw 网关服务本身在线，本地配置和基础网络没问题。&lt;/li&gt;
&lt;li&gt;enabled：允许 OpenClaw 启动 Discord 集成&lt;/li&gt;
&lt;li&gt;configured：找到了配置文件（token 等参数已填写）&lt;/li&gt;
&lt;li&gt;running：Discord 适配器进程已启动&lt;/li&gt;
&lt;li&gt;disconnected：实际未连接到 Discord 服务器&lt;/li&gt;
&lt;li&gt;token:config：Token 来源是配置文件（非环境变量）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;是否设置allowlists&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;../../assets/images/Pasted%20image%2020260309110700.png&quot; alt=&quot;alt text&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;教程中有一步需要获取Sever ID（Guide ID）和Channel ID，目的是设置Bot可访问哪些Channel。如果是个人使用，则没必要设置allowllists，直接设置为open即可（如下图）。&lt;/li&gt;
&lt;li&gt;当然，设置一下肯定也没有坏处。
&lt;ul&gt;
&lt;li&gt;&lt;img src=&quot;../../assets/images/Pasted%20image%2020260309110913.png&quot; alt=&quot;!Pasted image 20260309110913.png&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;设置DISCORD_BOT_TOKEN&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;../../assets/images/Pasted%20image%2020260309111010.png&quot; alt=&quot;!Pasted image 20260309111010.png&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;这里本人使用环境变量会导致Discord not configured，即OpenClaw找不到环境变量里的Token，目前还没找到解决方案。最后是通过将DISCORD_BOT_TOKEN写入.openclaw/openclaw.json解决（如下图）。
&lt;img src=&quot;../../assets/images/Pasted%20image%2020260309112705.png&quot; alt=&quot;!Pasted image 20260309112705.png&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Discord中BOT离线的解决方法&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：完成 OpenClaw 配置后，Discord Bot 始终离线，无法响应指令。
&lt;strong&gt;根因&lt;/strong&gt;：Discord 网关依赖 WebSocket 长连接，对网络环境有特定要求。常规代理模式（HTTP/HTTPS 代理）仅覆盖浏览器或显式配置的应用层流量，而 OpenClaw 的底层连接可能未落入该范围。
&lt;strong&gt;解决方案&lt;/strong&gt;：启用 TUN 模式（虚拟网卡层代理）。该模式在操作系统网络栈层面拦截流量，确保包括 WebSocket 在内的所有协议均被正确转发。
&lt;strong&gt;验证&lt;/strong&gt;：开启 TUN 后执行 &lt;code&gt;openclaw channels status&lt;/code&gt;，&lt;code&gt;disconnected&lt;/code&gt; 应变为 &lt;code&gt;connected&lt;/code&gt;，Bot 状态同步更新为在线。&lt;/p&gt;
</content:encoded></item><item><title>TIGER复现笔记</title><link>https://xikus.github.io/posts/tiger%E5%A4%8D%E7%8E%B0%E7%AC%94%E8%AE%B0/</link><guid isPermaLink="true">https://xikus.github.io/posts/tiger%E5%A4%8D%E7%8E%B0%E7%AC%94%E8%AE%B0/</guid><description>TIGER复现过程中学习的一些知识</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;简介&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;TIGER&lt;/strong&gt;是Google提出的一种&lt;strong&gt;生成式召回&lt;/strong&gt;推荐系统。其核心思想是将推荐任务转化为自回归生成任务。
TIGER的工作流程分为三步：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;语义嵌入&lt;/strong&gt;：使用预训练模型（如BERT）将商品文本描述转化为高维稠密向量（例如768维）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;量化编码&lt;/strong&gt;：通过&lt;strong&gt;RQ-VAE&lt;/strong&gt;，将上述稠密向量压缩为一串简短、离散的&lt;strong&gt;语义ID&lt;/strong&gt;（Semantic IDs）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;序列生成&lt;/strong&gt;：在召回阶段，训练一个自回归模型（如T5），以用户历史行为序列为输入，直接&lt;strong&gt;生成&lt;/strong&gt;下一个推荐商品的语义ID，从而实现端到端的推荐。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;Semantic IDs&lt;/h1&gt;
&lt;p&gt;在传统的深度推荐模型（如DLRM）中，物品通常由一个简单的&lt;strong&gt;Item ID&lt;/strong&gt;表示。这个ID经由哈希函数生成，主要用于在庞大的嵌入表中查找物品的Embedding   。然而，这种表示方法存在固有局限：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;哈希碰撞&lt;/strong&gt;：不同的物品可能映射到同一个ID，造成信息损失。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;词汇表膨胀&lt;/strong&gt;：每个新物品都需要一个新ID，导致模型参数剧烈增长。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;冷启动困难&lt;/strong&gt;：全新物品的ID缺乏历史交互数据，其嵌入难以训练。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;语义缺失&lt;/strong&gt;：DLRM依赖于User和Item的交互，模型无法利用物品本身的语义信息。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;为解决这些问题，&lt;strong&gt;语义ID&lt;/strong&gt; 应运而生。与单一ID不同，一个物品由&lt;strong&gt;一串有序的离散编码&lt;/strong&gt;来表示，每个编码捕捉物品不同层级的语义信息（由粗到细）。这不仅极大地&lt;strong&gt;压缩了词汇表规模&lt;/strong&gt;，还使模型能够理解物品之间的内在关联，增强泛化性。&lt;/p&gt;
&lt;h1&gt;RQ-VAE&lt;/h1&gt;
&lt;p&gt;介绍RQ-VAE之前，我们首先简要介绍VAE（自分编码器）。VAE是一种生成模型，它通过学习将输入数据编码到一个低维的、连续的“潜空间”，再从中解码重建数据，本质上是一个&lt;strong&gt;有损压缩&lt;/strong&gt;过程。
RQ-VAE是VAE的一个变种，其核心创新在于引入了&lt;strong&gt;残差量化&lt;/strong&gt; 和 &lt;strong&gt;离散码本&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;离散码本&lt;/strong&gt;：它是一个包含固定数量向量的“字典”。RQ-VAE的目标不是生成一个连续的潜变量，而是用码本中的一系列向量来&lt;strong&gt;组合表示&lt;/strong&gt;原始输入。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;残差量化&lt;/strong&gt;：这个过程是迭代进行的。首先，用码本中&lt;strong&gt;一个&lt;/strong&gt;最接近的向量来近似原始嵌入（产生第一个语义ID）。然后，计算近似后的残差，再用码本对残差进行量化（产生第二个语义ID）。如此重复，直到用一串ID（如&lt;code&gt;[42, 15, 7]&lt;/code&gt;）来精确表示原物体。
最终，一个商品的高维稠密嵌入，就被转化为了一串简短、可解释的语义ID。
RQ-VAE的生成过程契合由粗到细的规律，因此带来了一个关键优势：语义的层次化编码。最终得到的语义ID序列，其每个位置的token天然地对应着不同粒度的语义信息。（如：第一个token代表鞋，第二个token代表运动鞋，第三个token代表篮球鞋...)，这极大地增强了系统的泛化性，因为语义相似的物品（如“篮球鞋”和“足球鞋”），其语义ID的前缀必然相同或高度相似。
同时，由于RQ-VAE利用的是Item的语义信息，冷启动问题被极大地缓解（新物品也有语义信息）。
&lt;img src=&quot;../../assets/images/Pasted%20image%2020260120105800.png&quot; alt=&quot;alt text&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;RQ-VAE具体实现&lt;/h2&gt;
&lt;h3&gt;RQ-VAE架构&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;../../assets/images/Pasted%20image%2020260120200244.png&quot; alt=&quot;alt text&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;K-Means Init&lt;/h3&gt;
&lt;p&gt;对于每一层VectorQuantizer，在第一次forward时，对来自上一级的输入进行K-Means聚类，然后用聚类簇的中心初始化码表&lt;/p&gt;
&lt;h3&gt;Loss函数&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;RQ-VAE使用三种Loss函数：&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;commitment_loss&lt;/code&gt;和&lt;code&gt;codebook_loss&lt;/code&gt;在VectorQuantizer中使用。两者皆为输入embedding与距之最近的码表向量的“距离”，但是&lt;code&gt;codebook_loss&lt;/code&gt;不对输入embedding进行反向传播，从而只优化码表；而&lt;code&gt;commitment_loss&lt;/code&gt;不对码表向量进行反向传播，从而只优化编码器，使编码器输出向已选码本靠拢。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;commitment_loss = F.mse_loss(x_q.detach(), x)
codebook_loss = F.mse_loss(x_q, x.detach())
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;reconstruction_loss：重建损失。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Sinkhorn-Knopp&lt;/h3&gt;
&lt;h4&gt;问题：富者越富 (Rich get richer)&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;初始化时，某些码本向量可能离数据稍微近一点点。&lt;/li&gt;
&lt;li&gt;这些“幸运”的码本会被大量样本选中，并在训练中不断更新，变得离数据更近。&lt;/li&gt;
&lt;li&gt;其他码本因为从未被选中（或选中概率极低），永远得不到梯度更新，变成 “死码” (Dead Code)。&lt;/li&gt;
&lt;li&gt;结果：虽然设定了 256 个码本，实际可能有 200 个都是空的，模型容量被浪费了&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;数学解释&lt;/h4&gt;
&lt;p&gt;给定一个非负矩阵 Q，我们要找到两个对角缩放矩阵 D1​ 和 D2​，使得变换后的矩阵P=D1​QD2​ 满足两个约束：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;行和约束：每一行的和固定。&lt;/li&gt;
&lt;li&gt;列和约束：每一列的和固定。&lt;/li&gt;
&lt;/ol&gt;
&lt;h5&gt;迭代公式&lt;/h5&gt;
&lt;p&gt;假设输入是相似度矩阵Q(0)，迭代过程如下：&lt;/p&gt;
&lt;p&gt;Step 1: 行归一化 (Row Normalization)&lt;/p&gt;
&lt;p&gt;使得每一行的和符合约束&lt;/p&gt;
&lt;p&gt;$$Q_{ij}^{(t+0.5)} \leftarrow \frac{Q_{ij}^{(t)}}{\sum_{k} Q_{ik}^{(t)}}$$&lt;/p&gt;
&lt;p&gt;Step 2: 列归一化 (Column Normalization)&lt;/p&gt;
&lt;p&gt;使得每一列的和符合约束。&lt;/p&gt;
&lt;p&gt;$$Q_{ij}^{(t+1)} \leftarrow \frac{Q_{ij}^{(t+0.5)}}{\sum_{l} Q_{lj}^{(t+0.5)}}$$&lt;/p&gt;
&lt;p&gt;重复这两个步骤直到收敛。&lt;/p&gt;
&lt;h4&gt;效果&lt;/h4&gt;
&lt;p&gt;Sinkhorn 通过迭代归一化，强制要求每个码本在一个 Batch 中被分配到的总概率权重相等。这迫使模型去激活那些冷门的码本，最大化离散编码的熵。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;实际上，我还没有太理解这个算法😂（2026.01.20）&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;sentence-t5模型训练&lt;/h1&gt;
&lt;p&gt;TIGER系统的最后一步，是利用编码好的语义ID训练一个Encoder-Decoder架构生成模型（如 &lt;strong&gt;sentence-T5&lt;/strong&gt;）。这一过程的本质，是将推荐任务&lt;strong&gt;重构为一个Seq2Seq任务&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;输入序列&lt;/strong&gt;：用户近期交互过的物品（已转化为语义ID序列）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;输出序列&lt;/strong&gt;：模型生成的、推荐给用户的下一个物品的语义ID。
在推理（实际推荐）阶段，模型需要根据用户历史，生成最可能的下一个语义ID序列。这里，直接选择概率最高的单个输出（贪心搜索）容易陷入局部最优，导致推荐结果单一。为此，TIGER在推理时采用了Beam Search。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;总结&lt;/h1&gt;
&lt;p&gt;作为早期的生成式推荐模型，TIGER的主要贡献在于：&lt;strong&gt;一方面，创新性地使用RQ-VAE为物品构建语义ID；另一方面，成功将自回归模型应用于召回阶段。&lt;/strong&gt; 与后来OneRec等端到端推荐模型不同，TIGER的价值恰恰在于其&lt;strong&gt;结构简洁、复杂度低&lt;/strong&gt;，，非常适合作为初学者入门该领域的首选模型。&lt;/p&gt;
&lt;h1&gt;后记&lt;/h1&gt;
&lt;p&gt;这是我的第一篇技术文章（应该勉强算是吧😂），下笔时往往感觉词不达意，内容空洞，此时才感到语文没学好的痛苦😭。无奈之下，只能求助于DeepSeek重写（重写的效果其实也不尽如人意）。慢慢来，希望以后我能写出更好的文章🤤&lt;/p&gt;
&lt;p&gt;参考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://zerolovesea.github.io/2025/09/14/%E7%94%9F%E6%88%90%E5%BC%8F%E6%8E%A8%E8%8D%90%EF%BC%9ARQ-VAE/&quot;&gt;生成式推荐：RQ-VAE - 我不是算法工程师&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>麦理浩径路书</title><link>https://xikus.github.io/posts/%E9%BA%A6%E7%90%86%E6%B5%A9%E5%BE%84%E8%B7%AF%E4%B9%A6/</link><guid isPermaLink="true">https://xikus.github.io/posts/%E9%BA%A6%E7%90%86%E6%B5%A9%E5%BE%84%E8%B7%AF%E4%B9%A6/</guid><description>麦理浩径一日规划</description><pubDate>Sat, 03 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;[ ] 交通路线与方式
&lt;ul&gt;
&lt;li&gt;[ ] 去程&lt;/li&gt;
&lt;li&gt;[ ] 返程&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;[ ] 时间规划&lt;/li&gt;
&lt;li&gt;[ ] 住宿
&lt;ul&gt;
&lt;li&gt;[ ] 深圳站周边&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;[ ] 货币
&lt;ul&gt;
&lt;li&gt;[ ] 过口岸后换汇&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;[ ] 天气、衣物、药物、食物&lt;/li&gt;
&lt;li&gt;[ ] 证件与签注
&lt;ul&gt;
&lt;li&gt;[ ] 在派出所办理签注&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;交通&lt;/h1&gt;
&lt;h2&gt;去程&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;→深圳站&lt;/li&gt;
&lt;li&gt;深圳站→罗湖口岸（步行）&lt;/li&gt;
&lt;li&gt;罗湖→大学（东铁，27.1hkd）&lt;/li&gt;
&lt;li&gt;大学b口→万宜水库东坝（打车，参考价格300hkd）&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;徒步路线&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;万宜水库东坝→破边洲→万宜水库东坝&lt;/li&gt;
&lt;li&gt;万宜水库东坝→浪茄湾&lt;/li&gt;
&lt;li&gt;浪茄湾→西湾山&lt;/li&gt;
&lt;li&gt;西湾山→西湾亭&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;返程&lt;/h2&gt;
&lt;h3&gt;一、美径巴士直达口岸&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;西湾亭→北潭涌（29R/NR29，需乘坐17：00那一趟，17：40前到北潭涌）&lt;/li&gt;
&lt;li&gt;北潭涌→深圳湾（17：50美径巴士出发，99hkd）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;注意&lt;/strong&gt;：深圳湾口岸到罗湖口岸车程1h！&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h3&gt;二、地铁东铁线返回&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;西湾亭→西贡总站（29R/NR29、19hkd）
&lt;ol&gt;
&lt;li&gt;17：00、17：30、18：00三趟&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;西贡总站→沙田中心总站（299X、12hkd）
&lt;ol&gt;
&lt;li&gt;19：00前15min一趟；19：00后20min一趟（周六）&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://search.kmb.hk/KMBWebSite/?action=routesearch&amp;amp;route=299X&amp;amp;lang=zh-cn&quot;&gt;search.kmb.hk/KMBWebSite/?action=routesearch&amp;amp;route=299X&amp;amp;lang=zh-cn&lt;/a&gt;![[Pasted image 20251230191749.png]]&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;沙田中心总站→罗湖站（东铁）&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h3&gt;打车版&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;西湾亭→大学（参考价格300hkd）&lt;/li&gt;
&lt;li&gt;西湾亭→福田口岸（参考价格500hkd）&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item></channel></rss>