入力XML is
XSLTを使用してのCData内部のXML要素を解析し、HTML
<getArtifactContentResponse>
<return>
<![CDATA[
<metadata>
<overview>
<name>scannapp</name>
<developerId>developer702</developerId>
<stateId>2</stateId>
<serverURL>abc.com</serverURL>
<id>cspapp1103</id>
<description>scann doc</description>
<hostingTypeId>1</hostingTypeId>
</overview>
</metadata>
]]>
</return>
</getArtifactContentResponse>
に印刷下記は、私が開発したスタイルシートがあります。私はCdata内のXMLを取得することができますが、要素の値を取得することはできません。
<html><body><h1>Company Details</h1><table border="1"><tr><th>name</th><th>developerId</th><th>serverURL</th></tr>table
<tr><td></td><td></td><td></td></tr></table></body></html>
として期待出力
<html><body><h1>Company Details</h1><table border="1"><tr><th>name</th><th>developerId</th><th>serverURL</th></tr>table
<tr><td>scannapp</td><td>developer702</td><td>cspapp1103</td></tr></table></body></html>
来
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
<xsl:output method="html" encoding="utf-8" omit-xml-declaration="no" indent="no"/>
<xsl:template match="/">
<html>
<body>
<h1>Company Details</h1>
<table border="1">
<tr>
<th>name</th>
<th>developerId</th>
<th>Id</th>
</tr>table
<xsl:variable name ="data" select="//getArtifactContentResponse/return/node()" />
<tr>
<td>
<xsl:value-of select="$data/metadata/overview/name" disable-output-escaping="yes"/>
</td>
<td>
<xsl:value-of select="$data/metadata/overview/developerId" />
</td>
<td>
<xsl:value-of select="$data/metadata/overview/Id" />
</td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
出力Iは、値の名前を取るdeveloperId、同上およびHTMLに印刷します。それを行う方法私を助けてください。 XSLT version1.0を使用しています。
どのXSLT 1.0プロセッサを使用しますか?文字列をXMLで解析してノードにする拡張関数が必要です。 –
@MartinHonnenあなたはどの機能を覚えていますか? –
@ user3016153 XSLTプロセッサによっては、既存のソリューションがあるか、Microsoftの 'XslCompiledTransform'などで実装するのが簡単です。拡張関数やオブジェクトを使用して、XMLを解析するためにXPathDocumentを使用することができます。 MicrosoftのMSXMLでは、JScriptで実装されている拡張機能を使用するだけで、たとえば、 '関数parseXml(文字列){varドキュメント=新しいActiveXObject( 'Msxml2.DOMDocument.3.0'); doc.loadXML(string); return doc; } '。 –