java - 如何删除 XML 标记中的属性前缀?
问题描述
我需要删除 xml one 标签的属性。为此,我找到了使用 xslt 的解决方案:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node()">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
<xsl:template match="@*">
<xsl:attribute name="{local-name()}">
<xsl:apply-templates select="node()|@*" />
</xsl:attribute>
</xsl:template>
它工作得很好,甚至太多了,因为在删除过程之后,必要的属性变得没有前缀但也没有内容。由于某种原因,前缀和内容都被截断了,只剩下一个空属性,例如应该删除前缀的 attr "xsi:type":
<out:Declarant xsi:type="out:RequestAccount">
预计会这样:
<out:Declarant type="out:RequestAccount">
但得到了这个:
<out:Declarant type="">
我不明白为什么“类型”的内容被删除?
这是我的 xsd 文件到 xmls 的位置: xsd 图像
解决方案
的内容type
被删除,因为<xsl:apply-templates select="node()|@*" />
选择当前属性的子节点(和属性),但属性没有像元素那样的子节点(或属性)。
相反,只需这样做......
<xsl:value-of select="." />
推荐阅读
- python-3.x - 在 Tkinter 中显示 Web Scraping 值的问题
- c# - 无法通过 Docs API 向新表格行 Google Doc 中的单元格添加文本
- javascript - 使用 Selenium 和 Python 获取脚本“var”的值
- python - 如何在设备和打印机中双击已安装的打印机
- graphql - 如何使用 gatsby-image 设置图像最大宽度
- c - 医院管理系统的C程序不起作用
- python - mongodb python 获取数据库的用户
- php - 如何解析json中的对象
- c++ - 制作链表输入功能后获取输入的问题
- r - 在 Manjaro (Arch) Linux 中运行 NLRX (NetLogo) 时出错