2016-12-02 1 views
0

Теперь у меня есть XML, который в основном является именем всего сайта и подсайтов. Формирование XML-это примерно так:XML не генерируется должным образом из-за специального символа

<?xml version="1.0" encoding="ISO-8859-1"?> 
    <Sites xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.fakeurl.com"> 
     <site SId="00600095e-8450-0002-0000-847002f99he" WebId="xyz767-8450-0002-0000-847002f99heb" 
     Url="http://a122.xyz.com" Own="" RecOwn="" Nm="ABC" Desc="ABC" Org="" Pr="" SC="" St="Blank Site" 
     Sr="" CDb="XXCO_PP_ABC_Content_01" ACId="" /> 
    </Sites> 

Теперь одно из названий сайта имеет символ «VT». Я не могу вставить его, поскольку он не принимает символ (см. Снимок экрана ниже). Он говорит VT при копировании в блокноте ++ и символ в виде стрелки с кружком в блокноте. В браузере, если я пытаюсь скопировать его, вы получаете пустое пространство. Я приложу экранный снимок символа, как он появится в блокноте.

Проблема заключается в разрыве XML из-за этого символа. Я применил весь специальный символ с правильной кодировкой, но этот символ я не могу заменить в своем коде, поскольку я не могу копировать и вставлять в Visual studio. Он появляется только в Блокноте и блокноте ++. Любая идея о том, как обращаться с этим charchter ?? enter image description here

+0

Попробуйте заменить значение атрибута кодирования на 'utf-8' следующим образом:' '. – Perumal

+0

Это не помогает ... изначально это был utf-8, я изменил ISO на другие символы. –

+0

Если ваш ввод содержит символ вертикальной вкладки, то это не XML (по крайней мере, не XML 1.0) и не может обрабатываться XSLT , Используйте другой инструмент для его замены (или, по крайней мере, изменить объявление XML на 'version =" 1.1 ") перед обработкой документа. –

ответ

1

Без фактического кода похоже, что это может быть вертикальное языковое регулярное выражение? http://docs.notepad-plus-plus.org/index.php/Regular_Expressions

найти символ использовать HEX ASCII Notepad ++ Преобразовать Plugin

шестнадцатеричное значение VT является 0x0B и десятичное значение 11

, как только вы знаете, характер использования XSLT функцию замены.

How should the '\t' character be handled within XML attribute values?

1

Если это вертикальная табуляция (x0B), то это не юридический характер в XML 1.0. Вам нужно будет принять решение, пытаться ли каким-либо образом представить его или оставить его или заменить. Один из способов представления таких символов - это команды обработки <?x 0B?>, но это работает только в текстовых узлах, а не в атрибутах.

Переключение на utf-8 не поможет с этим конкретным персонажем, но, вероятно, это хорошая идея, вообще говоря, если у вас нет контроля над репертуаром персонажа на входе.

+0

Даже если я попытаюсь ее заменить, как я могу это сделать. XML генерируется динамически, если я пытаюсь заменить символ, я должен поместить его в свой метод, здесь я не могу скопировать этот символ в окно моей визуальной студии. Он только копируется в блокнот и блокнот ++ –

+0

Если что-то, что пытается сгенерировать XML, генерирует неправильный XML, вы управляете им, как и любая другая программа с ошибкой (или любым другим неисправным продуктом): вы исправляете ее или переключаетесь на другой поставщик, или вы обходите его, изменяя входы или выходы неисправной программы. –

Смежные вопросы