У меня есть следующий XML-файл:Изменение значений атрибутов с помощью XSL
<xc:XmlCache xmlns:xc="XmlCache" xmlns:mp="mx.MarketParameters" xmlns:fx="mx.MarketParameters.Forex" xmlns:fxsp="mx.MarketParameters.Forex.Spot">
<xc:XmlCacheArea xc:value="MarketParameters">
<mp:nickName xc:value="MDS" xmlns:mp="mx.MarketParameters">
<mp:date xc:value="20130315">
<fx:forex xmlns:fx="mx.MarketParameters.Forex">
<fxsp:spot xmlns:fxsp="mx.MarketParameters.Forex.Spot">
<fxsp:pair xc:value="AUD/AED" xc:type="Fields">
<mp:ask xc:keyFormat="N">1.0000000</mp:ask>
<mp:bid xc:keyFormat="N">1.0000000</mp:bid>
<mp:formFactor xc:keyFormat="N">1</mp:formFactor>
<mp:high xc:keyFormat="N">0.0000000</mp:high>
<mp:low xc:keyFormat="N">0.0000000</mp:low>
<mp:mid xc:keyFormat="N">1.0000000</mp:mid>
<mp:quotation xc:keyFormat="C">AUD-AED</mp:quotation>
</fxsp:pair>
<fxsp:pair xc:value="BHD/AED" xc:type="Fields">
<mp:ask xc:keyFormat="N">0.8264463</mp:ask>
<mp:bid xc:keyFormat="N">0.8264463</mp:bid>
<mp:formFactor xc:keyFormat="N">1</mp:formFactor>
<mp:high xc:keyFormat="N">0.0000000</mp:high>
<mp:low xc:keyFormat="N">0.0000000</mp:low>
<mp:mid xc:keyFormat="N">0.8264463</mp:mid>
<mp:quotation xc:keyFormat="C">BHD-AED</mp:quotation>
</fxsp:pair>
</fxsp:spot>
</fx:forex>
</mp:date>
</mp:nickName>
</xc:XmlCacheArea>
</xc:XmlCache>
Я ищу способ сделать две вещи: 1. Удалите все элементы, но два -> Тпл: спросить и Тпл: bid 2. измените числовые значения этих двух элементов на другие значения, которые у меня есть в файле csv.
Ожидаемый выход
<xc:XmlCache xmlns:xc="XmlCache" xmlns:mp="mx.MarketParameters" xmlns:fx="mx.MarketParameters.Forex" xmlns:fxsp="mx.MarketParameters.Forex.Spot">
<xc:XmlCacheArea xc:value="MarketParameters">
<mp:nickName xc:value="MDS" xmlns:mp="mx.MarketParameters">
<mp:date xc:value="20130315">
<fx:forex xmlns:fx="mx.MarketParameters.Forex">
<fxsp:spot xmlns:fxsp="mx.MarketParameters.Forex.Spot">
<fxsp:pair xc:value="AUD/AED" xc:type="Fields">
<mp:ask xc:keyFormat="N">1.0000000</mp:ask>
<mp:bid xc:keyFormat="N">1.0000000</mp:bid>
</fxsp:pair>
<fxsp:pair xc:value="BHD/AED" xc:type="Fields">
<mp:ask xc:keyFormat="N">0.8264463</mp:ask>
<mp:bid xc:keyFormat="N">0.8264463</mp:bid>
</fxsp:pair>
</fxsp:spot>
</fx:forex>
</mp:date>
</mp:nickName>
</xc:XmlCacheArea>
</xc:XmlCache>
Идея заключается в том, чтобы обновить значения в выходной XML с теми, предусмотренными в файле CSV (первое значение ставки, второй один, это спросить). Если необходимо, файл csv может быть преобразован в xml, это не проблема.
CSV file
AUD/AED;25;25
BHD/AED;20;20
Файл сделан из приложения, которое мы используем. После изменения значений цель состоит в том, чтобы повторно импортировать файл в приложение. Я пробовал много вещей в xsl, но должен сказать, что не вижу, как я могу заставить его работать.
Может ли кто-нибудь помочь?
Благодаря
Можно ли изменить свой вопрос, чтобы показать результат, который вы ожидаете здесь? Кроме того, не могли бы вы уточнить, что вы имеете в виду, когда говорите «другие значения, которые у меня есть в файле CSV». Возможно, вы также можете показать этот файл CSV, хотя я боюсь, что извлечение значений из него с помощью XSLT может быть сложным (вам почти наверняка понадобится использовать XSLT 2.0) –