1)
<xsl:variable name="pathId" select="Orders/Order[ORD_Num='$id/idNum']"/>
Вы говорите: Order
элемент, у которого есть как минимум один ORD_Num
ребенок со строковым значением, равным '$id/idNum'
.
Заменить:
<xsl:variable name="pathId" select="Orders/Order[ORD_Num=$id]"/>
Поскольку строковое значение переменной $ ид (Конечное дерево фрагмент, как вы определяете) является 0607V45621014F
.
Примечание: Было бы лучше, если бы вы определяли $ id как строку, такую как select="'0607V45621014F'"
. Кроме того, вы не можете (в XSLT 1.0): [ORD_Num=$id/idNum]
, потому что оператор /
не может применяться к RTF.
2)
<xsl:variable name="XmlFile" select="YG.xml"/>
<xsl:value-of select="document($XmlFile)/aziende/azienda/ragione_sociale"/>
Здесь вы говорите: Пусть $ XMLFILE узел установлен со всеми YG.xml
элементов Чайлдс из контекстного узла и т.д.
Заменить (если вы хотите документ с относительной URI YG.xml
)
<xsl:variable name="XmlFile" select="'YG.xml'"/>
Примечание: это не trought ошибку, потому что document()
очень универсален (это те немногие из них, что т ака в качестве object
пар)
3)
<xsl:variable name="tagName" select="aziende"/>
<xsl:value-of select="document($XmlFile)/$tagName/azienda/ragione_sociale"/>
Это не работает, потому что правая expresion из /
должна быть путь (В XSLT 2.0 может быть функция, а).
Заменить:
<xsl:variable name="tagName" select="document($XmlFile)/aziende"/>
<xsl:value-of select="$tagName/azienda/ragione_sociale"/>
Или
<xsl:variable name="tagName" select="'aziende'"/>
<xsl:value-of select="document($XmlFile)/*[name()=$tagName]/azienda/ragione_sociale"/>
Пожалуйста, переформатировать вопрос. Написание таких материалов, как «помогите мне!», «Спасибо» и т. Д., Отталкивает людей отвечать. Используйте полные предложения. Опишите желаемый ввод и вывод, например «Я получил переменную x =« ab », y = 'c', я хочу z = 'abc'". В двух последних примерах я не вижу значимой разницы. – phihag