У меня есть XML-документ с пространством имен, которое выглядит примерно так: я просто упростил его, чтобы задать вопрос.
<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 , и когда я запускаю скрипт, он на самом деле прекрасно работает с пространством имен.
К сожалению, это решение не является идеальным, потому что, когда я пытаюсь запустить его в другом необходимом мне XSLT-инструменте (во время выполнения), он не работает правильно.
Я точно знаю, что пространство имен отбрасывает XSLT, который я использую, потому что, когда я удаляю его из XML, он отлично работает в тестировании. Однако это решение не является правдоподобным, поскольку весь этот процесс фактически автоматизирован. Поэтому мне нужно решение проблемы с пространством имен.
Anythoughts