期待どおりにフォーマットされていないXMLを入手することがよくあり、それを自動的に修正するための最良の方法を探しています。残念ながら、解決策は私の頭の上でスケートをすることです。
私は雑誌のコンテンツに取り組んでおり、2つの特定の要素で苦労しています。
There are <subhead> elements, and <body> elements. Even though the subhead element should always be on it's own, sometimes the proofer will accidentally nest it with a <body> node.
<subhead> nodes should be formatted as their own paragraph, wrapped in <p> and <strong> tags.
<body> nodes should just be wrapped in <p> tags.
So I could get either:
<subhead>Dogs</subhead>
<body>Dogs do not like cats.</body>
or
<body><subhead>Dogs</subhead> Dogs do not like cats.</body>
I would like either scenario to output as:
<p><strong>Dogs</strong></p>
<p>Dogs do not like cats.</p>
現在、私のコードは次のようになっています。
<xsl:for-each select="//default:textObject/default:text/*">
<xsl:for-each select="./*">
<xsl:choose>
<xsl:when test="@name='subhead'">
<p><strong>
<xsl:apply-templates select="node()"/>
</strong></p>
</xsl:when>
<xsl:when test="@name='body'">
<p>
<xsl:apply-templates select="node()"/>
</p>
</xsl:when>
...
</xsl:choose>
</xsl:for-each>
</xsl:for-each>
その問題を解決するためにこれをどのように調整できますか?
ありがとうございました。