У меня были способы поиска по-русски, и я получаю несколько хитов, но никто не работает для меня.XSLT - Проверьте, существует ли какой-либо элемент или узлы
У меня есть входящие XML-файлы, которые являются либо двумя XML-файлами.
<Session>
<SessionID>1231</SessionID>
<ClientID>556677</ClientID>
</Session>
или
<Session>
<SessionID>1231</SessionID>
<CompanyID>1060</CompanyID>
</Session>
На основании вышеизложенного, XML может очень от CompanyID к ClientId. Я хочу, чтобы преобразовать он XML, но для этого мне нужен способ, чтобы сказать:
Если я ClientID, то только получить значение и преобразовать XML, так что это проявляется так:
<?xml version="1.0" encoding="UTF-8"?>
<Sessions xmlns="http://mysite/services/v1">
<a:Session>1231</a:Session>
<a:Client>556677</a:Client>
</Sessions>
и если я получаю CompanyID, я преобразовать к следующему
<?xml version="1.0" encoding="UTF-8"?>
<Sessions xmlns="http://mysite/services/v1">
<a:Session>1231</a:Session>
<a:Company>1060</a:Company>
</Sessions>
The будет поставляться с любой из элементов ClientId или элемента CompanyID, но не как XML ....
Я попытался используйте следующий без успеха:
<xsl:choose>
<xsl:when test="/Session/ClientID">
<a:Client>
<xsl:value-of select="a:Session/a:ClientId"/>
</a:Client>
</xsl:choose>
Я хочу, чтобы иметь возможность проверить, если элемент с «ClientID» находится на XML, я могу получить значение из него и создать элемент с именем «Клиент» .. . то же самое, если я получаю XML с компанией.
Любые идеи? Спасибо за помощь.
Ваш результат несправедлив: префикс "а" не привязан к пространству имен. –