You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ResourceDictionary无法输出'<':配置<sys:String>节点提示XML无效

解决ResourceDictionary中字符串包含<导致XML无效的问题

这个坑我之前踩过!核心原因很简单:在XML语法里,<是用来标记标签开始的特殊字符,你直接把它放在<sys:String>的内容里,XML解析器会误以为要开始新标签,自然就报“XML无效”了。给你三个实用的解决办法:

  • 用XML转义字符替换:把<换成XML预定义的转义序列&lt;,解析器会自动把它还原成<字符。修改后的代码是这样:

    <sys:String x:Key="INVESTIGATE_FURTHER">weight&lt;123</sys:String>
    
  • 用CDATA段包裹内容:如果你的字符串里有一堆特殊字符(不止<),用CDATA段更省心——它里面的内容会被XML解析器当作纯文本,完全不处理标签逻辑。写法如下:

    <sys:String x:Key="INVESTIGATE_FURTHER"><![CDATA[weight<123]]></sys:String>
    

    注意要严格按照<![CDATA[你的内容]]>的格式写,别漏了闭合的]]>,不然还是会报错。

  • 后台代码赋值(备选方案):要是不想在XAML里纠结XML语法,直接在后台代码里给这个资源赋值就行,这样完全不用管特殊字符的限制。比如在窗口的构造函数里加这段:

    public MainWindow()
    {
        InitializeComponent();
        Resources["INVESTIGATE_FURTHER"] = "weight<123";
    }
    

额外提一句:XML里还有几个特殊字符需要注意,比如>对应&gt;、&对应&amp;、"对应&quot;、'对应&apos;,碰到这些字符时,上面的方法同样适用。

内容的提问来源于stack exchange,提问作者EDOaide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 16:47:40