删除标题标签,包括信封,正文等

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除标题标签,包括信封,正文等相关的知识,希望对你有一定的参考价值。

我有一个源XML,在该XML中,我需要删除Header标记,并从主XML中提取一个子XML。以下是我的输入-

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/ " xmlns:xs="http://www.w3.org/2001/XMLSchema " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance " xmlns:n="http://schemas.xmlsoap.org/soap/envelope/ " xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:event="some namespace" xmlns:head="some namespace">
    <soap:Header>
        <head:someHeader>
            <!--content-->
        </head:someHeader>
    </soap:Header>
    <soap:Body>
        <event:parent>
            <child>
                <!--internal content-->
            </child>
        </event:parent>
    </soap:Body>
</soap:Envelope>

下面是我的预期输出-

        <parent>
            <child>
                <!--internal content-->
            </child>
        </parent>

[首先,我正在进行身份转换,然后尝试删除信封和正文,但这似乎不起作用。这是我的尝试不起作用-

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" exclude-result-prefixes="soap">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="soap:Envelope/soap:Header"/>
    <xsl:template match="Envelope/Body">
        <xsl:copy-of select="*"/>
    </xsl:template>
</xsl:stylesheet>
答案

您可以简单地做:

另一答案

您可以选择event:parent元素,对其进行转换并复制其余部分

以上是关于删除标题标签,包括信封,正文等的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Node.js IMAP 模块中的正文获取纯文本

XSLT转换需要添加SOAP信封并在SOAP标头和正文之间拆分XML

Python:鉴于原始电子邮件没有“正文”标签或任何东西,如何从原始电子邮件中解析正文

如何删除正文周围的边距空间或清除默认 CSS 样式

数字信封工作原理

为啥将脚本标签放在正文标签的末尾是好的?