XML Имя не может начинаться с символа "=" - PullRequest
1 голос
/ 18 июня 2020

Я прочитал аналогичное сообщение символа%, но кажется, что другие проблемы можно решить в строке заголовка. Существуют ли определенные символы, запрещенные в XML, или мне нужно отформатировать документ другим способом (в моем случае символ «=» вызывает у меня проблемы при попытке прочитать документ в C#)?

Имя не может начинаться с символа '' , также похоже, но все еще фиксируется заголовком.

XElement nodes = XElement.Load(filename);  

Структура XML приведена ниже:

<?xml version="1.0" encoding="utf-8"?>
<offer>
  <data id="Salary">
    <ocrstring>which is equal to $60,000.00 if working 40 hours per week</ocrstring>
    <rule>.*(([+-]?\$[0-9]{1,3}(?:,?[0-9]{3})*\.[0-9]{2}))</rule>
    <output></output>
  </data>
  <data id="Hours">
    <ocrstring></ocrstring>
    <rule>"(?<=working).*?(?=hours)"</rule>    <!-- Error Occurring Here -->
    <output>bob</output>
  </data>
  <data id="Location">
    <ocrstring></ocrstring>
    <rule>Regex2</rule>
    <output>LongWindingRoad222</output>
  </data>
</offer>

ErrorParsing XML

Как я могу проанализировать XML документ, не получив сообщение «Не может начинаться с символа» = «Ошибка

1 Ответ

4 голосов
/ 18 июня 2020

Вам необходимо использовать разделы CDATA для всех элементов <rule>.

Что означает дюйм XML означает?

XML

<?xml version="1.0" encoding="utf-8"?>
<offer>
    <data id="Salary">
        <ocrstring>which is equal to $60,000.00 if working 40 hours per week</ocrstring>
        <rule><![CDATA[.*(([+-]?\$[0-9]{1,3}(?:,?[0-9]{3})*\.[0-9]{2}))]]></rule>
        <output></output>
    </data>
    <data id="Hours">
        <ocrstring></ocrstring>
        <rule><![CDATA["(?<=working).*?(?=hours)"]]></rule>
        <!-- Error Occurring Here -->
        <output>bob</output>
    </data>
    <data id="Location">
        <ocrstring></ocrstring>
        <rule>Regex2</rule>
        <output>LongWindingRoad222</output>
    </data>
</offer>
...