こんにちは私はW3Schools XSLT Tryitエディタを使用してKMLファイル(XMLファイルとして保存されています)を変換しようとしていますが、ここに私のXMLファイルの抜粋です:XSLTを使用してXML(旧KML)を変換する
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document>
<name>Bnsf RR cut</name>
<open>1</open>
<Style>
<ListStyle>
<ItemIcon>
<href>kmzicon.png</href>
</ItemIcon>
</ListStyle>
</Style>
<Folder>
<name>11/10/11 8:17:20 AM</name>
<Placemark>
<name>Track</name>
</Placemark>
</Folder>
<Placemark>
<name>Gray Mesa</name>
<description><![CDATA[<img width="800" src="1.jpg"/>]]></description>
<Point>
<coordinates>-106.493097,34.446357,1692.000000</coordinates>
</Point>
</Placemark>
</Document>
</kml>
そして、私のXSLT:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="Document/Placemark">
<xsl:value-of select="name"/>
<xsl:value-of select="description"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
私はXMLコードでKMLタグを削除した場合、それは正常に動作しますが、私はむしろこれを試してみて、自動化するだろうと多数のXMLからコードを削除する必要はありません。私は "kml"をXSLTコード "/ kml/Document/Placemark"に追加しようとしましたが、それは動作しません。ありがとうございました!私はこれが私の目的のために働くだろうと思い
<Document>
<Placemark>
<name>Gray Mesa</name>
<description><![CDATA[<img width="800" src="1.jpg"/>]]></description>
<Point>
<coordinates>-106.493097,34.446357,1692.000000</coordinates>
</Point>
</Placemark>
</Document>
:私は私の変換されたXMLは次のようになりたい何
。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:kml="http://www.opengis.net/kml/2.2">
<xsl:template match="/">
<xsl:for-each select="kml:kml/kml:Document/kml:Placemark">
<name><xsl:value-of disable-output-escaping="yes" select="kml:name"/></name>
<description><xsl:value-of disable-output-escaping="yes" select="kml:description"/></description>
</xsl:for-each>
</xsl:template>
それぞれの名前と説明タグは、しかし、これを含んでいる:のxmlns:KML = "http://www.opengis.net/kml/2.2" 私はちょうどかかわらず、Accessクエリであることを連結することができますが。私はAccessにインポートしようとするとエラーが発生します。私は多くの名前と説明タグしか持っていないので、私はルートフォルダが必要だと言います。 XSLを使用してタグを追加する方法はありますか?どうもありがとうございました。私が編集を続けているという不吉な質問を申し訳ありません。あなたのXMLでXPath 1.0では、デフォルトの名前空間
<kml xmlns="http://www.opengis.net/kml/2.2" ...
があるので
私は、問題は名前空間宣言であると思います。この問題の解決策はまだありませんが、ループを "kml/Document/Placemark"に変更して、要素から名前空間宣言を削除した場合、それはうまくいきます。 –