2010-10-14 2 views
1

Я использую xsl для преобразования данных из xml в код C++. Я столкнулся с проблемами, когда у меня есть < = или> = в файле xml, который нужно преобразовать в код C++.xml to C++: обработка escape-символов <=

Например, если у меня есть (в XML-файле)


<Check>max(x,y) <= 20 </Check> 

и файл .xsl является

 

if(<xsl:value-of select="Check"/>") { 
... 
} 
 

Но это не компилируется как ошибки XML, выполненной на видя < =.

Я пробовал & lt; = в файле xml, но я не получаю < = в файле C++, но получаю & lt; =. Чтобы быть удобным, мне нужно иметь < = в xml-файле, а не & lt; =.

Как исправить код в условии if(), чтобы я мог обрабатывать все escape-символы в xml и правильно выводить их в файл C++?

Благодаря Ананд

ответ

3

Установили ли вы элемент xsl: output в вашем файле stylehsheet? По умолчанию XSLT считает, что его вывод - это XML, и он будет скрывать символы. Попробуйте следующее:

<xsl:output method="text" /> 
+0

Это работает. большое спасибо – Anand

1

Вы не можете иметь < знак в файле XML - если вы делаете это не файл XML и не будут обрабатываться другими редакторами и т.д., так что я думаю, что вам нужно идти с & lt; = стратегия и проанализировать поле после того, как вы прочтете его, чтобы заменить последовательности & на нужные символы из кода C.