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

游戏Mod开发:XML XInclude引用原文件失败及测试方法咨询

XML XInclude测试方案与Mod开发问题解答

一、XInclude测试方法

VSCode本地测试

  • 安装XML Tools插件:
    1. 将Mod XML文件与原版vanilla.xml放在同一目录,确保路径正确
    2. 右键点击Mod XML文件,选择XML Tools > XML Format with XInclude,插件会自动解析并生成合并后的XML,直接验证结构是否符合预期
  • 命令行测试(Python脚本,无需额外环境):
    用以下脚本解析XML并处理XInclude,输出合并结果:
    import xml.etree.ElementTree as ET
    from xml.etree.ElementTree import XMLParser
    
    # 启用XInclude支持
    parser = XMLParser(target=ET.TreeBuilder(insert_comments=True))
    parser.parser.UseForeignDTD(True)
    parser.xinclude()
    
    tree = ET.parse('your_mod.xml', parser=parser)
    root = tree.getroot()
    ET.dump(root)
    

在线测试工具

直接使用支持XInclude的在线XML解析器,粘贴原版和Mod的XML内容,指定文件关联后即可查看合并结果。

二、现有XInclude写法的问题分析

  1. 第一种写法:直接包含整个原版文件,会导致根节点<filename.xml>嵌套,结构变为<filename.xml><filename.xml>...</filename.xml><nodes>...</nodes></filename.xml>,完全不符合需求
  2. 第二种写法:xpointer="element(/1)"指向原版根节点,同样会引发嵌套问题
  3. 第三种写法:分别包含<settings>、<grid>、<nodes>后又新增<nodes>,会产生两个<nodes>节点,而非追加内容

正确的追加写法(针对<nodes>内容)

要在原版<nodes>内追加内容,需合并原版节点子元素与新增内容:

<filename.xml xmlns:xi="http://www.w3.org/2001/XInclude">
    <!-- 包含原版的settings和grid节点 -->
    <xi:include href="vanilla.xml" xpointer="element(/1/1)"/>
    <xi:include href="vanilla.xml" xpointer="element(/1/2)"/>
    <!-- 合并原版nodes子元素与新增内容 -->
    <nodes>
        <xi:include href="vanilla.xml" xpointer="element(/1/3/node())"/>
        <items_being_added/>
    </nodes>
</filename.xml>

xpointer="element(/1/3/node())"指向原版<nodes>下的所有子节点,实现内容追加。

三、常见疑问解答

  1. 不带http的xmlns地址w3.org/2001/XInclude是否可行?
    不可行,XML命名空间必须是完整URI,不带协议的地址不合法,解析器无法识别XInclude标签,必须使用标准的http://www.w3.org/2001/XInclude(部分解析器兼容https开头的地址,但标准为http)

  2. 游戏客户端不支持XInclude怎么办?
    无法强制内置解析器支持,替代方案:

    • 写预处理脚本:在Mod打包/运行前自动合并原版XML与Mod XML,生成最终文件供游戏读取
    • 查看游戏官方Mod机制:部分游戏提供<append>类标签或Mod加载器支持XML合并
  3. 重复<nodes>标签是替换还是追加?
    既不是替换也不是追加,解析器会保留两个<nodes>节点,游戏读取时可能仅识别第一个或报错,无法实现内容追加的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:05:09