# XML 重构

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/zh-cn/help/idea/llms.txt).

XML 重构支持由   重构-XML   插件提供，该插件与 IDE 捆绑并默认启用。

Procedure: 调用 XML 重构

1. 将文本光标置于您要重构的元素上，然后在主菜单中，转到  `重构 | XML 重构 | <Refactoring_Name>` 。

或者，将文本光标放置在元素上，按下 `Ctrl+Alt+Shift+T` (Windows), `⌃ T` (macOS), `⌘ ⌥ ⇧ T` (IntelliJ IDEA Classic (macOS)), `⌃ S` (macOS System Shortcuts), `Ctrl+Alt+Shift+T` (XWin), `Ctrl+Alt+Shift+T` (GNOME), `Ctrl+Alt+Shift+T` (KDE), `Ctrl+Alt+Shift+T` (Emacs), `Ctrl+Alt+Shift+T` (Sublime Text), `⌃ T` (Sublime Text (macOS)), `Ctrl+Shift+R` (Visual Studio), `⌘ ⇧ R` (Visual Studio (macOS)), `Ctrl+Alt+Shift+T` (NetBeans), `Ctrl+Alt+Shift+T` (Eclipse), `⌃ T` (Eclipse (macOS))，然后从列表中选择一个操作。

2. 请选择您想执行重构的文件范围：整个项目、当前模块、当前目录或当前文件。

对于   目录   范围，您可以启用   递归地   复选框，以将所选目录及嵌套子目录包含在范围内。

3. 选择   限制到带有 DTD 的文件   复选框以将范围限制为与当前文件具有相同 DOCTYPE 的文件。

4. 选择   限制为名称匹配正则表达式的文件   选项以将范围限制为名称与提供的字段中指定的正则表达式匹配的文件。

## 可用的 XML 重构

删除特性
: 删除特性  重构允许您删除一组 XML 标签上的一组属性定义。 如果调用此重构，则所有具有所选标签名称的标签上的与所选属性名称匹配的所有属性都可能被删除。

用标签替换属性
: 将 Attribute 替换为 Tag   重构 允许您将一组 XMLs 标签上的属性定义替换为等效的子标签。 如果启动此重构，具有所选标签名称的标签上所有与所选属性名称匹配的属性可能会被删除，并创建等效的子标签。

用带属性的标签替换
: 用属性替换标签   重构允许您用等效的属性替换一组 XML 标签中的子标签定义。 如果执行此重构，则可能删除与所选标签名称匹配的所有标签中的所选父标签名称上的标签，并创建等效属性。

添加特性
: 添加特性   重构允许您向一组 XML 标签添加属性。 如果调用此重构，则会将与请求的属性名和值匹配的属性添加到具有选定标记名称的标记中。 如果所请求的属性尚未包含在所选属性中的标签，则可以选择性地将所请求的属性添加到这些标签中。

添加子标签
: 添加子标签   重构允许您向一组 XML 标签添加一个子标签。 如果调用此重构，将把子标签名称与请求的子标签名称匹配的子标签添加到具有所选标签名称的标签中。 可以选择仅将请求的子标签添加到尚未包含选定子标签的标签中。

向内移动特性
: 移入特性   重构允许您将定义在一组 XML 标签上的属性移动到一组子标签中。 如果调用此重构，则所有与选定属性名称匹配的标签上的属性可能会移入具有给定名称的子标签内。

移出属性
: 移出特性  重构允许您将一组 XML 标签上定义的属性移到其父标签。 如果启用此重构，所有在具有所选标签名的标签上与所选属性名匹配的属性可能会向外移动。

更改特性值
: 更改特性值   重构使您能够更改定义在一组 XML 标签上的属性值。 如果调用此重构，则所有具有所选标签名并带有所选属性名和所选属性值的标签的属性值可能会被更改。

将标记内容转换为特性
: 将标记内容转换为特性  重构允许您将一组 XML 标签的内容替换为等效的属性。 如果执行此重构，则所有与所选标签名称匹配的标签将删除其文本内容，并创建等效的属性。

删除标记
: 删除标记   重构允许您删除一组 XML 标签。 如果执行此重构，则会删除所有与所选标签名匹配的标签上的所选标签名。

解包标记
: 解包标记   重构允许您展开一组 XML 标签，将其替换为内容（如果有的话）。 如果调用此重构，则所有匹配所选标签名称的标签可能会被展开。 请注意，顶级标签将不会被解包，因为这可能会导致 XML 文档无效。

包装标签
: 包装标记   重构允许您将一组 XML 标签包装在新创建的父级中。 如果调用此重构，所有匹配所选标签名称的标签都可能会被包装。

包装标签内容
: 包装标记内容   重构允许您将一组 XML 标签的内容包含在新创建的标签中。 如果调用此重构操作，所有与选定标签名称匹配的标签的内容将被包装。

