XSLTを使用して複数の文書を一度に変換します。これらの文書は、 <a:updated></a:updated>
または<app:edited></app:edited>
のような要素を持ち、そのうちのいくつかは<a:updated></a:updated>
と<app:edited></app:edited>
の両方を持つことがあります。2つの同じ要素が見つかった場合、変換時に1つの要素を削除します。
この場合、出力されたドキュメントの一部(title、link、contentなどの標準要素に加えて)には、<posted></posted>
という要素が2回あります。
ここに質問がある場合<posted></posted>
<app:edited>
と<a:updated>
が同じ<entry></entry>
に見つかった場合はどうすれば削除できますか?
これはこれは、テンプレート
<xsl:template match="a:updated | app:edited">
<posted>
<xsl:apply-templates select="node() | @*" />
</posted>
</xsl:template>
である、これは私が
$xproc = new XsltProcessor();
$xslt = new DomDocument;
$xslt->load('stylesheet.xslt');
$xproc->importStylesheet($xslt);
それを処理する方法であり、これは基本的にXML
あるXSLT<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app">
の見出しです
<entry>
<id></id>
<title></title>
<content></content>
<link></link>
<a:updated></a:updated>
<app:edited></app:edited>
</entry>
+1、しかし、私たちにXMLを表示してください:電子出力)はを生産しています。一般に、どのようにテンプレートを選択するかは、実行するためにどのように選択されるかは、このテンプレートを選択する ''命令に依存します。したがって、解決策は、 'a:updates'、' updated'、 'app:edited'のいずれかの場合にのみテンプレートを適用することです。 –