質問

XSLT変換に取り組んでいます。私は一点に立ち往生しています。

ソースXML:

   <?xml version="1.0" encoding="ISO-8859-1"?>
    <Content xmlns="uuid:4522eb85-0a47-45f9-8e2b-1f82c78fa920">
    <first xmlns="uuid:4522eb85-0a47-45f9-8e2b-1f82c78fa920">Hello World.This is Fisrt       field</first>
    <second xmlns="uuid:4522eb85-0a47-45f9-8e2b-1f82c78fa920">Hello World.This is second      field2</second>
   </Content>
.

出力フォーマットが必要:

<aaa>Hello World.This is Fisrt   field</aaa>
<bbb>Hello World.This is second field</bbb>
.

これの解決策を提案してください。

私はこれを試してみました

   <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="uuid:4522eb85-0a47-45f9-8e2b-1f82c78fa920">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
    <aaa>
    <xsl:value-of select="Content/first"/>
    </aaa>
     </xsl:template>
    </xsl:stylesheet> 
.

出力が

 <?xml version="1.0" encoding="utf-8"?>
    <aaa xmlns="uuid:4522eb85-0a47-45f9-8e2b-1f82c78fa920"></aaa>
.

出力が必要です

<aaa>Hello World.This is Fisrt   field</aaa>
.

役に立ちましたか?

解決

あなたが欲しいものを行うものは、次のようなコメントを見てください。

<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:x="uuid:4522eb85-0a47-45f9-8e2b-1f82c78fa920">

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

  <xsl:template match="/">
    <xsl:element name="root">
      <xsl:element name="aaa">
        <xsl:value-of select="x:Content/x:first"/>
      </xsl:element>
      <xsl:element name="bbb">
        <xsl:value-of select="x:Content/x:second"/>
      </xsl:element>
    </xsl:element>
  </xsl:template>

</xsl:stylesheet>
.

特定のXSLTプロセッサでは、結果に複数のルート要素を持つことができますが、これは標準と構文的に矛盾するため、推奨されません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top