나는 Banxico Web Services를 사용하고 있는데 문자열을 반환합니다. 문자열에는 XML이 있습니다.String XML을 XML 노드로 변환하는 방법 XSLT
정말 필요한 부분은 XSLT 또는 XPath를 사용하여 다음 부분을 추출하는 것입니다.
XSLT 또는 Xpath를 사용하여 어떻게 할 수 있습니까?
페소 por dólar E.U.A. 억센 드 캄 비오 파라 solventar obligaciones denominadas EN moneda extranjera Fecha 드 determinación (FIX) " IDSERIE ="SF43718 "BANXICO_FREQ ="직경 "BANXICO_FIGURE_TYPE ="TipoCambio " BANXICO_UNIT_TYPE ="PesoxDoll ">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<X-OPNET-Transaction-Trace:X-OPNET-Transaction-Trace soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xsi:type="soapenc:string" xmlns:X-OPNET-Transaction-Trace="http://opnet.com" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">pid=4468,requestid=4d0ce60a-c92f-441e-87b1-4c6f12b26574</X-OPNET-Transaction-Trace:X-OPNET-Transaction-Trace>
</soapenv:Header>
<soapenv:Body>
<ns1:tiposDeCambioBanxicoResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://ws.dgie.banxico.org.mx">
<result xsi:type="xsd:string"><![CDATA[<?xml version="1.0" encoding="ISO-8859-1"?>
<CompactData xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v1_0/message"
xmlns:bm="http://www.banxico.org.mx/structure/key_families/dgie/sie/series/compact"
xmlns:compact="http://www.SDMX.org/resources/SDMXML/schemas/v1_0/compact"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.SDMX.org/resources/SDMXML/schemas/v1_0/message SDMXMessage.xsd
http://www.banxico.org.mx/structure/key_families/dgie/sie/series/compact BANXICO_DGIE_SIE_Compact.xsd
http://www.SDMX.org/resources/SDMXML/schemas/v1_0/compact SDMXCompactData.xsd" >
<Header>
<ID>TIPOSDECAMBIO</ID>
<Test>false</Test>
<Truncated>false</Truncated>
<Name xml:lang="sp">Tipos de Cambio</Name>
<Prepared>2016-12-15 12:26:37.766</Prepared>
<Sender id="BANXICO">
<Name xml:lang="sp">Banco de México</Name>
<Contact>
<Name xml:lang="sp">Subgerencia de Desarrollo de Sistemas</Name>
<Telephone>(01 55)52372678</Telephone>
</Contact>
</Sender>
<DataSetAction>Update</DataSetAction>
<Extracted>2016-12-15 12:26:37.766</Extracted>
</Header>
<bm:DataSet>
<bm:SiblingGroup BANXICO_FREQ="Dia" TIME_FORMAT="P1D"/>
<bm:Series TITULO="Tipo de cambio pesos por dólar E.U.A. Tipo de cambio para solventar obligaciones denominadas en moneda extranjera Fecha de liquidación" IDSERIE="SF60653" BANXICO_FREQ="Dia" BANXICO_FIGURE_TYPE="TipoCambio" BANXICO_UNIT_TYPE="PesoxDoll">
<bm:Obs TIME_PERIOD="2016-12-15" OBS_VALUE="20.2567"/>
</bm:Series>
<bm:Series TITULO="Tipo de cambio Pesos por dólar E.U.A. Tipo de cambio para solventar obligaciones denominadas en moneda extranjera Fecha de determinación (FIX)" IDSERIE="SF43718" BANXICO_FREQ="Dia" BANXICO_FIGURE_TYPE="TipoCambio" BANXICO_UNIT_TYPE="PesoxDoll">
<bm:Obs TIME_PERIOD="2016-12-15" OBS_VALUE="20.5973"/>
</bm:Series>
<bm:Series TITULO="Cotización de las divisas que conforman la canasta del DEG Respecto al peso mexicano Euro" IDSERIE="SF46410" BANXICO_FREQ="Dia" BANXICO_FIGURE_TYPE="TipoCambio" BANXICO_UNIT_TYPE="Peso">
<bm:Obs TIME_PERIOD="2016-12-14" OBS_VALUE="21.535"/>
</bm:Series>
<bm:Series TITULO="Cotización de la divisa Respecto al peso mexicano Dólar Canadiense" IDSERIE="SF60632" BANXICO_FREQ="Dia" BANXICO_FIGURE_TYPE="TipoCambio" BANXICO_UNIT_TYPE="Peso">
<bm:Obs TIME_PERIOD="2016-12-14" OBS_VALUE="15.4178"/>
</bm:Series>
<bm:Series TITULO="Cotización de las divisas que conforman la canasta del DEG Respecto al peso mexicano Yen japonés" IDSERIE="SF46406" BANXICO_FREQ="Dia" BANXICO_FIGURE_TYPE="TipoCambio" BANXICO_UNIT_TYPE="Peso">
<bm:Obs TIME_PERIOD="2016-12-14" OBS_VALUE="0.176"/>
</bm:Series>
<bm:Series TITULO="Cotización de las divisas que conforman la canasta del DEG Respecto al peso mexicano Libra esterlina" IDSERIE="SF46407" BANXICO_FREQ="Dia" BANXICO_FIGURE_TYPE="TipoCambio" BANXICO_UNIT_TYPE="Peso">
<bm:Obs TIME_PERIOD="2016-12-14" OBS_VALUE="25.5806"/>
</bm:Series>
</bm:DataSet>
</CompactData>]]></result>
</ns1:tiposDeCambioBanxicoResponse>
</soapenv:Body>
</soapenv:Envelope>
그 응답으로
은 내가 XSD 스키마를 구축 할 수 있습니다.
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.banxico.org.mx/structure/key_families/dgie/sie/series/compact" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="DataSet">
<xs:complexType>
<xs:sequence>
<xs:element name="SiblingGroup">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="BANXICO_FREQ"/>
<xs:attribute type="xs:duration" name="TIME_FORMAT"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Series" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Obs">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:date" name="TIME_PERIOD" use="optional"/>
<xs:attribute type="xs:float" name="OBS_VALUE" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="TITULO" use="optional"/>
<xs:attribute type="xs:string" name="IDSERIE" use="optional"/>
<xs:attribute type="xs:string" name="BANXICO_FREQ" use="optional"/>
<xs:attribute type="xs:string" name="BANXICO_FIGURE_TYPE" use="optional"/>
<xs:attribute type="xs:string" name="BANXICO_UNIT_TYPE" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
어떤 버전의 XSLT 또는 XPath를 사용할 수 있습니까? 내부 XML을 CDATA 섹션으로 이스케이프 처리하면 두 가지 구문 분석 단계가 필요합니다. 순수 XSLT 또는 XPath에서이를 수행하려면 XSLT/XPath 3.0 또는 XML을 구문 분석하기위한 확장을 지원하는 구현이 필요합니다. –