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

如何在draw.io中自动生成容器专属占位符与独立引用?

在Draw.io中批量生成带独立占位符的容器

方法1:原生查找替换+批量复制

  • 先将模板容器的占位符改成带编号的唯一命名,比如把unique_id改为id_1,name改为name_1,文本引用同步调整为Container %id_1% - %name_1% is of gender %gender_1% and is %age_1% years old.
  • 复制模板容器到需要的数量,然后逐个选中容器,用「编辑 > 查找替换」功能,将当前容器内的_1批量替换为对应编号(比如第2个容器替换为_2,第3个替换为_3),注意勾选「仅在选中元素中替换」
  • 该方法适合中小批量需求,操作成本远低于手动逐个修改

方法2:XML导出修改后导入

  • 将模板文件导出为XML格式(文件 > 导出为 > XML)
  • 用文本编辑器(如VS Code)打开XML,定位到模板容器的代码块,其中包含占位符定义和文本引用
  • 利用编辑器的多行编辑或正则替换功能,批量生成N份容器代码,并自动给占位符添加唯一后缀:
    • 例如用正则把id="unique_id"替换为id="unique_id_$num",把%unique_id%替换为%unique_id_$num%,其中$num依次取1到目标数量
  • 修改完成后将XML文件导入Draw.io,即可得到所有带独立占位符的容器

方法3:控制台脚本批量生成(适合技术用户)

  • 选中画布上的模板容器,按F12打开开发者工具并切换到控制台
  • 运行以下JavaScript脚本(可根据需求调整生成数量和偏移距离):
var template = selectedCell;
var count = 100; // 要生成的容器数量
for(var i=1; i<=count; i++){
  var clone = template.clone();
  // 重命名占位符ID
  var cells = clone.getElementsByTagName('mxCell');
  for(var j=0; j<cells.length; j++){
    var id = cells[j].getAttribute('id');
    if(['unique_id', 'name', 'gender', 'age'].some(key => id.includes(key))){
      cells[j].setAttribute('id', `${id}_${i}`);
    }
  }
  // 更新文本中的占位符引用
  var text = clone.getAttribute('value');
  if(text){
    text = text.replace(/%unique_id%/g, `%unique_id_${i}%`)
               .replace(/%name%/g, `%name_${i}%`)
               .replace(/%gender%/g, `%gender_${i}%`)
               .replace(/%age%/g, `%age_${i}%`);
    clone.setAttribute('value', text);
  }
  // 添加到画布并偏移位置避免重叠
  graph.addCell(clone);
  clone.geometry.x += i*25;
  clone.geometry.y += i*25;
}
  • 执行后画布会自动生成指定数量的独立容器,每个容器的占位符均为唯一可编辑状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:52:36