私はこれに似た名前空間を持つxml文書を持っていますが、質問をするために単純化しました。XML名前空間は私のXSLTを投げ捨てています
<MyNameSpace xmlns="http://schemas.microsoft.com/dynamics/2006/02/documents/MyNameSpace">
<IDmain>ins</IDmain>
<Table_1 class="entity">
<Address>Oak Park Drive</BillingProviderAddress>
<City>Lake Elizabeth</BillingProviderCity>
<Name>Corporation</BillingProviderOrgName>
<InvoiceLine class ="entity">
<DateService>1234</DateService>
</InvoiceLine>
<Table_1>
</MyNameSpace>
ここでXSLTを作成しました。 XSLTのエキスパートではありませんが、これは「厄介な問題を解決する」瞬間です。
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:variable name="vPrefix">
<xsl:value-of select="MyNameSpace/Table_1/Address"/>
<xsl:text>|</xsl:text>
<xsl:value-of select="MyNameSpace/Table_1/City"/>
<xsl:text>|</xsl:text>
<xsl:value-of select="MyNameSpace/Table_1/Name"/>
<xsl:text>|</xsl:text>
</xsl:variable>
<xsl:for-each select="MyNameSpace/Table_1/InvoiceLine">
<xsl:value-of select="$vPrefix"/>
<xsl:text>|</xsl:text>
<xsl:value-of select="DateService"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
さて、XSLTは、私はそれは、問題がある、私のテストデータは、XML文書の上部に、このファンキーな名前空間を含めるかを正確に行います。
のxmlns =「http://schemas.microsoft.com/dynamics/2006/02/documents/MyNameSpace」、私はXMLPADを使用していますが、私は、スクリプトを実行すると、それが実際にうまくない
2つのことそこの名前空間。
残念ながら、私が必要とする別のXSLTツールで実行しようとすると(実行時に)正しく実行されないため、その解決策は理想的ではありません。
名前空間が私が使用しているXSLTを捨てていることはわかっています。なぜなら、XMLからXMLを削除すると、テストで正常に動作するからです。しかし、このプロセス全体が実際に自動化されているため、この解決策は妥当性はありません。だから私は名前空間の問題を解決する必要があります。
Anythoughts?
整形式入力XML –
["重複"とfaq]を提供します(http://stackoverflow.com/questions/1344158/xslt-with-xml-source-that-has-a-default-namespace-set -to-xmlns)。 –
* XSLTは私が望んでいるものとまったく同じですが、問題は私のテストデータです - それはちょうど私を笑わせます。 – LarsH