Sql - недопустимый символ в синтаксическом анализе xml при попытке добавить замену

Как добавить в этот код функцию замены:

cast (convert(varchar(max), Convert(varbinary(max), c_xml)) as xml) c_xml

Я получаю сообщение об ошибке синтаксического анализа XML. Я считаю, что мне нужно преобразовать & в & amp. Я нашел одну из ячеек в sql, где проблема заключается в том, чтобы иметь два прямоугольных символа.

<SyncShipment xmlns="http://schema.infor.com/InforOAGIS/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" releaseID="9.2" versionID="2.6.3" xsi:schemaLocation="http://schema.infor.com/InforOAGIS/2 http://schema.infor.com/trunk/InforOAGIS/BODs/Developer/SyncShipment.xsd"><ApplicationArea><Sender><LogicalID>infor.syteline.tangent</LogicalID><ComponentID>erp</ComponentID></Sender><CreationDateTime>2018-09-13T19:02:40Z</CreationDateTime><BODID>infor-nid:infor:Tangent:Tangent:5222898:?Shipment&amp;verb=Sync</BODID></ApplicationArea><DataArea><Sync><TenantID>infor</TenantID><AccountingEntityID>Tangent</AccountingEntityID><LocationID>Tangent~MAIN</LocationID><ActionCriteria><ActionExpression actionCode="Add" /></ActionCriteria></Sync><Shipment><ShipmentHeader><DocumentID><ID accountingEntity="Tangent" lid="infor.syteline.tangent" location="Tangent~MAIN" variationID="2745613608842789">5222898</ID></DocumentID><DisplayID>5222898</DisplayID><LastModificationDateTime>2018-09-13T19:02:28Z</LastModificationDateTime><DocumentDateTime>2018-09-13T19:02:28Z</DocumentDateTime><Status><Code listID="Shipment Status">Shipped</Code><EffectiveDateTime>2018-09-13T19:02:28Z</EffectiveDateTime></Status><WarehouseLocation><ID accountingEntity="Tangent" location="Tangent">Tangent~MAIN</ID><Name languageID="en-US">Tangent Technologies</Name><Address><AddressLine sequence="1">1001 Sullivan Road</AddressLine><AddressLine sequence="2" /><AddressLine sequence="3" /><AddressLine sequence="4" /><CityName>Aurora</CityName><CountrySubDivisionCode listID="State-Province">IL</CountrySubDivisionCode><CountryCode listID="Countries">US</CountryCode><PostalCode listID="Postal/ZIP Codes">60506</PostalCode></Address></WarehouseLocation><ActualShipDateTime>2018-09-13T19:02:28Z</ActualShipDateTime><ActualDeliveryDateTime>2018-09-13T19:02:28Z</ActualDeliveryDateTime><ShipFromParty><PartyIDs><ID accountingEntity="Tangent">Tangent</ID></PartyIDs><Name>Tangent Technologies</Name><Location><ID accountingEntity="Tangent" location="Tangent">Tangent~MAIN</ID><Name languageID="en-US">Tangent Technologies</Name><Address><AddressLine sequence="1">1001 Sullivan Road</AddressLine><AddressLine sequence="2" /><AddressLine sequence="3" /><AddressLine sequence="4" /><CityName>Aurora</CityName><CountrySubDivisionCode listID="State-Province">IL</CountrySubDivisionCode><CountryCode listID="Countries">US</CountryCode><PostalCode listID="Postal/ZIP Codes">60506</PostalCode></Address></Location></ShipFromParty><CarrierParty><PartyIDs><ID accountingEntity="Tangent" /></PartyIDs><Location><ID /></Location></CarrierParty><ShipToParty><PartyIDs><ID accountingEntity="Tangent">Tangent~MAIN</ID></PartyIDs><Name>Tangent Technologies</Name><Location><ID accountingEntity="Tangent" location="Tangent">Tangent~MAIN</ID><Name languageID="en-US">Tangent Technologies</Name><Address><AddressLine sequence="1">1001 Sullivan Road</AddressLine><AddressLine sequence="2" /><AddressLine sequence="3" /><AddressLine sequence="4" /><CityName>Aurora</CityName><CountrySubDivisionCode listID="State-Province">IL</CountrySubDivisionCode><CountryCode listID="Countries">US</CountryCode><PostalCode listID="Postal/ZIP Codes">60506</PostalCode></Address></Location><Contact><Communication><UseCode listID="Communication Use Codes">Phone</UseCode><DialNumber>630-264-1110</DialNumber></Communication></Contact></ShipToParty><CustomerParty><Name languageID="en-US">Tangent Technologies</Name><Location><Name languageID="en-US">Tangent Technologies</Name><Address><AddressLine sequence="1">1001 Sullivan Road</AddressLine><CityName>Aurora</CityName><CountrySubDivisionCode listID="State-Province">IL</CountrySubDivisionCode><CountryCode listID="Countries">US</CountryCode><PostalCode listID="Postal/ZIP Codes">60506</PostalCode></Address></Location><Contact><Communication><UseCode listID="Communication Use Codes">phone</UseCode></Communication></Contact></CustomerParty></ShipmentHeader><ShipmentItem><ItemID><ID accountingEntity="Tangent">.75X2.625X144XMCHXR187X2E2</ID></ItemID><Description>3/4 x 2 5/8 x 144 Mocha DEM 2PAT</Description><OrderQuantity unitCode="">240.00000000</OrderQuantity><ShippedQuantity unitCode="">240.00000000</ShippedQuantity><ShippedBaseUOMQuantity unitCode="">240.00000000</ShippedBaseUOMQuantity><EstimatedWeightMeasure unitCode="">1756.8000000000000</EstimatedWeightMeasure><LoadingWeightMeasure unitCode="">1756.8000000000000</LoadingWeightMeasure><PlannedShipQuantity unitCode="">240.00000000</PlannedShipQuantity><SerializedLot><Lot sequence="1"><LotIDs><ID accountingEntity="Tangent">.75X2.625X144XMCHXR187X2E2~33191-02-01</ID></LotIDs></Lot></SerializedLot><LineNumber>10</LineNumber><CountSequence>1</CountSequence></ShipmentItem></Shipment></DataArea></SyncShipment>

Это один из прошедших синтаксический анализ. Такие пакеты проходят каждые несколько минут.

Это необходимо преобразовать в XML: 0x3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E3C53796E634974656D4D61737465722072656C6561736549443D22392E32222076657273696F6E49443D22322E362E332220786D6C6E733D22687474703A2F2F736368656D612E696E666F722E636F6D2F496E666F724F414749532F322220786D6C6E733A7873693D22687474703A2F2F7777772E77332E6F72672F323030312F584D4C536368656D612D696E7374616E636522207873693A736368656D614C6F636174696F6E3D22687474703A2F2F736368656D612E696E666F722E636F6D2F496E666F724F414749532F3220433A2F746F6F6C322F496E666F722F496E666F724F414749532F424F44732F446576656C6F7065722F53796E634974656D4D61737465722E787364223E3C4170706C69636174696F6E417265613E3C53656E6465723E3C4C6F676963616C49443E696E666F722E737974656C696E652E74616E67656E743C2F4C6F676963616C49443E3C436F6D706F6E656E7449443E6572703C2F436F6D706F6E656E7449443E3C2F53656E6465723E3C4372656174696F6E4461746554696D653E323031382D30392D31335431393A30353A32395A3C2F4372656174696F6E4461746554696D653E3C424F4449443E696E666F722D6E69643A696E666F723A54616E67656E743A3A332E3578332E35783039367854477852303633784E413A3F4974656D4D617374657226616D703B766572623D53796E633C2F424F4449443E3C2F4170706C69636174696F6E417265613E3C44617461417265613E3C53796E633E3C54656E616E7449443E696E666F723C2F54656E616E7449443E3C4163636F756E74696E67456E7469747949443E54616E67656E743C2F4163636F756E74696E67456E7469747949443E3C416374696F6E43726974657269613E3C416374696F6E45787072657373696F6E20616374696F6E436F64653D224368616E676522202F3E3C2F416374696F6E43726974657269613E3C2F53796E633E3C4974656D4D61737465723E3C4974656D4D61737465724865616465723E3C4974656D49443E3C4944206163636F756E74696E67456E746974793D2254616E67656E7422206C69643D22696E666F722E737974656C696E652E74616E67656E742220766172696174696F6E49443D2232373435363135323934303133323038223E332E3578332E35783039367854477852303633784E413C2F49443E3C2F4974656D49443E3C4974656D49443E3C4944206C69643D22696E666F722E737974656C696E652E74616E67656E742220736368656D654167656E637949443D22433030303832352220736368656D654E616D653D22437573746F6D6572223E313132342D38545552464752262378343B262378313B3C2F49443E3C2F4974656D49443E3C4974656D49443E3C4944206C69643D22696E666F722E737974656C696E652E74616E67656E742220736368656D654167656E637949443D22433030313136392220736368656D654E616D653D22437573746F6D6572223E58342D34473C2F49443E3C5265766973696F6E4944202F3E3C2F4974656D49443E3C4C6173744D6F64696669636174696F6E506572736F6E3E3C4944733E3C49443E4E5420534552564943455C53514C5345525645524147454E543C2F49443E3C2F4944733E3C4E616D65202F3E3C2F4C6173744D6F64696669636174696F6E506572736F6E3E3C53657276696365496E64696361746F723E66616C73653C2F53657276696365496E64696361746F723E3C4465736372697074696F6E206C616E677561676549443D22656E2D5553223E34207820342078203936205475726620477265656E3C2F4465736372697074696F6E3E3C436C617373696669636174696F6E3E3C436F6465733E3C436F6465206C6973744167656E63794E616D653D22537974654C696E6522206C69737449443D2241424320436F646573222073657175656E63653D2231223E413C2F436F64653E3C436F64652073657175656E63653D223222202F3E3C436F6465206C6973744167656E63794E616D653D22537974654C696E6522206C69737449443D22436F7374204D6574686F6473222073657175656E63653D2233223E5374616E646172643C2F436F64653E3C436F6465206C6973744167656E63794E616D653D22537974654C696E6522206C69737449443D2250726F6475637420436F6465222073657175656E63653D2234223E54616E67656E747E46696E20476F6F64733C2F436F64653E3C436F6465206C6973744167656E63794E616D653D22537974654C696E6522206C69737449443D224974656D2047726F757073222073657175656E63653D2236223E54616E67656E747E46696E20476F6F64733C2F436F64653E3C2F436F6465733E3C2F436C617373696669636174696F6E3E3C53706563696669636174696F6E3E3C50726F70657274793E3C4E616D6556616C7565202F3E3C4465736372697074696F6E3E34207820342078203936205475726620477265656E3C2F4465736372697074696F6E3E3C4E6F7465202F3E3C2F50726F70657274793E3C504C4D50726976617465496E64696361746F723E46414C53453C2F504C4D50726976617465496E64696361746F723E3C2F53706563696669636174696F6E3E3C547970653E7072696D6172793C2F547970653E3C4D6178696D756D4C6F7453697A655175616E746974793E35352E34373333373237383C2F4D6178696D756D4C6F7453697A655175616E746974793E3C4D6178696D756D4C6F7453697A6542617365554F4D5175616E746974793E35352E34373333373237383C2F4D6178696D756D4C6F7453697A6542617365554F4D5175616E746974793E3C4C65616454696D654475726174696F6E3E503059304D3044543048304D302E303030533C2F4C65616454696D654475726174696F6E3E3C4261636B466C7573686564496E64696361746F723E66616C73653C2F4261636B466C7573686564496E64696361746F723E3C547261636B696E67496E64696361746F723E313C2F547261636B696E67496E64696361746F723E3C4974656D5374617475733E3C436F6465206C69737449443D224974656D20537461747573223E4F70656E3C2F436F64653E3C4566666563746976654461746554696D653E323031382D30332D33305431383A33343A34345A3C2F4566666563746976654461746554696D653E3C526561736F6E202F3E3C2F4974656D5374617475733E3C42617365554F4D436F6465202F3E3C4974656D56616C75653E3C556E697456616C75653E3C416D6F756E742063757272656E637949443D22223E33342E37373737333030303C2F416D6F756E743E3C5065725175616E7469747920756E6974436F64653D22223E312E303C2F5065725175616E746974793E3C2F556E697456616C75653E3C436F7374696E674D6574686F64436F6465206C69737449443D22436F7374696E67204D6574686F6473223E5374616E646172643C2F436F7374696E674D6574686F64436F64653E3C2F4974656D56616C75653E3C53657269616C436F6E74726F6C496E64696361746F723E66616C73653C2F53657269616C436F6E74726F6C496E64696361746F723E3C4C6F74436F6E74726F6C496E64696361746F723E747275653C2F4C6F74436F6E74726F6C496E64696361746F723E3C436F6E666967757265644974656D496E64696361746F723E66616C73653C2F436F6E666967757265644974656D496E64696361746F723E3C55736572417265613E3C50726F70657274793E3C4E616D6556616C7565206E616D653D22436F6D6D6F646974794A7572697364696374696F6E2220747970653D22537472696E675479706522202F3E3C2F50726F70657274793E3C50726F70657274793E3C4E616D6556616C7565206E616D653D224543434E5F55534D4C2220747970653D22537472696E675479706522202F3E3C2F50726F70657274793E3C50726F70657274793E3C4E616D6556616C7565206E616D653D2250726F6772616D2220747970653D22537472696E675479706522202F3E3C2F50726F70657274793E3C50726F70657274793E3C4E616D6556616C7565206E616D653D225363686564756C65422220747970653D22537472696E675479706522202F3E3C2F50726F70657274793E3C50726F70657274793E3C4E616D6556616C7565206E616D653D22487473436F64652220747970653D22537472696E675479706522202F3E3C2F50726F70657274793E3C50726F70657274793E3C4E616D6556616C7565206E616D653D22487473436F64654465736372697074696F6E2220747970653D22537472696E675479706522202F3E3C2F50726F70657274793E3C50726F70657274793E3C4E616D6556616C7565206E616D653D22436F756E7472792220747970653D22537472696E675479706522202F3E3C2F50726F70657274793E3C2F55736572417265613E3C53656C6C61626C65496E64696361746F723E747275653C2F53656C6C61626C65496E64696361746F723E3C50726F637572656D656E74506172616D65746572733E3C50726F637572656D656E744D6574686F64436F64653E4D616E75666163747572653C2F50726F637572656D656E744D6574686F64436F64653E3C4D696E5175616E7469747920756E6974436F64653D22223E302E30303030303030303C2F4D696E5175616E746974793E3C4D61785175616E7469747920756E6974436F64653D22223E302E30303030303030303C2F4D61785175616E746974793E3C2F50726F637572656D656E74506172616D65746572733E3C537562737469747574696F6E733E3C436F6D706F6E656E74733E3C4974656D49443E3C4944202F3E3C2F4974656D49443E3C5175616E746974793E313C2F5175616E746974793E3C2F436F6D706F6E656E74733E3C2F537562737469747574696F6E733E3C2F4974656D4D61737465724865616465723E3C4974656D4C6F636174696F6E3E3C57617265686F7573654C6F636174696F6E3E3C4944206163636F756E74696E67456E746974793D2254616E67656E74223E54616E67656E747E4D41494E3C2F49443E3C2F57617265686F7573654C6F636174696F6E3E3C2F4974656D4C6F636174696F6E3E3C2F4974656D4D61737465723E3C2F44617461417265613E3C2F53796E634974656D4D61737465723E

Вы можете предоставить нам XML?

Paul Karam 13.09.2018 21:42

добавлен xml, который фактически преобразует

raider 13.09.2018 21:48

А что насчет того, который не конвертируется и фактически выдает ошибку?

Paul Karam 13.09.2018 21:48

добавил сообщение, я действительно не смог найти здесь недопустимый символ

raider 13.09.2018 21:53

Как это должно быть преобразовано в XML?

Paul Karam 13.09.2018 21:56

@PaulKaram, ну двоичные файлы - это не что иное, как varchar(max). Проблема в том, что результирующая строка xml содержит недопустимые символы ...

Shnugo 14.09.2018 08:48
1
6
154
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В этой позиции ваш XML включает плохие символы (сократите с помощью ...):

<ID lid="..." schemeAgencyID="..." schemeName="...">1124-8TURFGR&#x4;&#x1;</ID>

Удаление &#x4;&#x1; решает проблему.

Но: Эти два символа являются частью значения <ID>s. Я не знаю, почему существуют эти символы, и не знаю, имеют ли они какое-то значение.

'# x4' известен как конец передачи, а '# x1' известен как начало курса. Я почти уверен, что эти невидимые персонажи - какой-то осадок ...

Попробуйте:

SELECT CAST(REPLACE(CAST(@xmlBin AS VARCHAR(MAX)),'&#x4;&#x1;','') AS XML)

Мне удалось удалить специальные символы, и это исправило. Огромное спасибо. Как вы преобразовали двоичный файл в xml?

raider 14.09.2018 17:24

@raider моя последняя строчка делает именно это. После преобразования двоичных файлов в строку вы можете преобразовать эту строку в xml.

Shnugo 14.09.2018 17:37

Удаление специальных символов устранило проблему, и этот двоичный файл был преобразован в xml и обработан, но запрос выдает мне сообщение об ошибке, в котором говорится, что «явное преобразование из изображения типа данных в varchar (max) запрещено.

raider 14.09.2018 18:41

@raider Image устарел на века! Избавьтесь от него ... Вам понадобится три приведения: varbinary (max) - varchar (max) - xml

Shnugo 14.09.2018 18:51

Другие вопросы по теме