当前位置: 首页 > 知识库问答 >
问题:

从XML中删除XML定义

金钊
2023-03-14
<ns1:outSystemWSResponse xmlns:ns1='http://abcd.co.za'
    xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsd='http://www.w3.org/2001/XMLSchema'
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
    <ns1:out>&#60;?xml version="1.0" encoding = "UTF-8"?&#62;&#60;PQR&#62;
        &#60;STU&#62;
        &#60;TEST1&#62;Pen&#60;/TEST1&#62;
        &#60;TEST2&#62;Table&#60;/TEST2&#62;
        &#60;/STU&#62;
        &#60;/PQR&#62;</ns1:out>
</ns1:outSystemWSResponse>
<?xml version="1.0" encoding="UTF-8"?>
<ns1:outSystemWSResponse xmlns:ns1="http://abcd.co.za"
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ns1:out>
        <PQR>
            <STU>
                <TEST1>Pen</TEST1>
                <TEST2>Table</TEST2>
            </STU>
        </PQR>
    </ns1:out>
</ns1:outSystemWSResponse>

我尝试了下面的XSLT,但我不知道如何删除,xml version=“1.0”encoding=“UTF-8”?>。请帮忙

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="ns:out" xmlns:ns="http://abcd.co.za">
    <xsl:copy>
        <xsl:value-of select="." disable-output-escaping="yes"/>
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>

共有1个答案

洪河
2023-03-14

我同意Martin Honnen的观点,即最好的解决方案是将转义文本转换为XML,然后使用适当的XML解析器对其进行解析。

如果您仅限于XSLT1.0或2.0,这意味着只将禁用转义的ns1:out的内容输出到另一个文件,然后用另一个样式表处理结果文件。

不过,在紧要关头,你可以做:

<xsl:template match="ns:out" xmlns:ns="http://abcd.co.za">
    <xsl:copy>
        <xsl:value-of select="substring-after(., '?>')" disable-output-escaping="yes"/>
    </xsl:copy>
</xsl:template>
 类似资料:
  • 问题内容: 我有一个xml,如下所示: 现在,我想删除标记,但在此处保留内容“ ABCD”。或者有没有一种方法可以使用java从整个XML文件中删除。请帮忙。谢谢。 问题答案: 使用DOM4J或SAX解析器解析文档 从标签中获取价值 从值中删除所有html标签 JSoup三通 字符串替换 将新值设置为XML字体标签

  • 有没有办法从一个巨大的xml文件中删除注释( 两者,根元素前的注释 和内的注释 最好的解决方案是使用xPath。我试过了 它适用于DOM,但不适用于vtd xml 这是我选择评论的代码 但此处的屏幕上打印的是nothing。 有没有办法用vtd xml做到这一点? 谢谢你的帮助。

  • 我正在尝试从xml文件中删除元素和子元素。特别是附加名称Testlog。 首先这是我的xml文件的外观。 以下是我的java代码: 我想删除此appender的所有内容,但引发了一个异常。可能是我错过了一些简单的东西。 有什么想法吗?

  • 问题内容: 给出如下结果 但是我需要从输出中删除xml声明,我该怎么做 问题答案: 您是否看到了Transformer使用的OutputKeys?特别是OMIT_XML_DECLARATION。 请注意,删除标头在XML 1.0中有效,但是会丢失字符编码数据(尤其如此),这可能非常重要。

  • 问题内容: 我已经从Excel数据库中生成了一个xml文件,它自动包含一个名为“ ” 的元素。为了使新文件符合我的需求,我想使用java删除此元素。这是xml内容: 我编写了一个代码来读取(使用缓冲的读取器)并将内容写入新文件中,并在以下情况下使用该条件: 但这不起作用 问题答案: 我个人建议使用适当的XML解析器(如Java DOM)来检查和删除您的节点,而不是将XML作为原始对象处理(糟糕)。

  • 在本章中,我们将学习XML DOM删除节点的操作。删除节点操作是指从文档中删除指定的节点。实现此操作以移除诸如文本节点,元素节点或属性节点之类的节点。 以下是用于删除节点操作的方法 - 方法 方法 1. removeChild()方法 方法从子列表中删除指示的子节点,并将其返回。 删除子节点等同于删除文本节点。 因此,删除子节点会删除与其关联的文本节点。 语法 使用方法的语法如下 - 其中, -