gpt4 book ai didi

xml - 如何使用疯狂的命名空间创建 XML 输出,例如 (xmlns :json)

转载 作者:行者123 更新时间:2023-12-04 16:56:25 25 4
gpt4 key购买 nike

我有以下输入(没有命名空间):

XML 输入

   <book>
<title>foo</title>
<title>foo2</title>
</book>

我需要用 创建XSL 转换 以下输出:

XML 输出
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:json="http://json.org/">
<data json:force-array="true">
<label>foo</label>
<label>foo2</label>
</data>
</root>

我当前的 XSL 样式表如下所示:

*XSL 样式表 *
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:json="http://json.org/"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="">

<xsl:output method="xml" indent="yes"/>


<xsl:template match="book">
<xsl:element name="root" namespace="json">
<xsl:attribute name="json">http://json.org/</xsl:attribute>

<xsl:element name="data" namespace="json">
<xsl:attribute name="json:force-array" namespace="json">true</xsl:attribute>

<xsl:for-each select="child::title">
<xsl:element name="label"><xsl:value-of select="."/></xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>

此 XSL 提供以下输出:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="json" json="http://json.org/">
<data xmlns:json="json" json:force-array="true">
<label xmlns="http://www.w3.org/1999/xhtml">foo</label>
<label xmlns="http://www.w3.org/1999/xhtml">foo2</label>
</data>
</root>

我的三个问题是:
  • 我该怎么办删除 xmlns 属性 在元素上?
  • 如何创建 @xmlns:json 属性 ?
  • 如何删除 @xmlns:json="json"元素上的属性?

  • 我正在使用 saxon9he 解析器。

    提前致谢!
    (我快疯了!)

    最佳答案

    我不知道你为什么这么努力。使用您的示例输入,这个简单的样式表:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>

    <xsl:template match="/book">
    <root xmlns:json="http://json.org/">
    <data json:force-array="true">
    <xsl:for-each select="title">
    <label>
    <xsl:value-of select="."/>
    </label>
    </xsl:for-each>
    </data>
    </root>
    </xsl:template>
    </xsl:stylesheet>

    将产生指定的输出。请注意, <stylesheet> 中没有命名空间声明。元素,除了所需的 xsl。

    关于xml - 如何使用疯狂的命名空间创建 XML 输出,例如 (xmlns :json),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20492203/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com