Преобразование строки в узлы xml - PullRequest
1 голос
/ 19 мая 2011

У меня есть строка, она содержит узлы xml, возвращенные из файла PHP.Это как

<a>1</a><b>0</b><c>4</c>..............

Теперь мне нужно выяснить, какое значение имеет каждый узел, например, a, b, c ...... при загрузке этой строки в xmlDocument я получаю сообщение об ошибке типа "Есть несколькокорневые элементы ".

любое решение для этого

Ответы [ 4 ]

5 голосов
/ 19 мая 2011

Одно из основных правил для правильно сформированного XML , что он имеет единственный корневой узел.В вашем примере у вас есть несколько корней:

<a>1</a>
<b>0</b>
<c>4</c>

Чтобы сделать его корректным, вам нужно сделать эти элементы дочерними по отношению к одному корню:

<root>
    <a>1</a>
    <b>0</b>
    <c>4</c>
</root>

XML-документэто не совсем правильно - это не совсем XML-документ, и вы обнаружите, что никакой синтаксический анализатор XML не сможет его прочитать!

3 голосов
/ 19 мая 2011

Оберните его в корневой элемент. Например:

С <a>1</a><b>2</b>...

К <root><a>1</a><b>2</b>...</root>

Затем вычислите как обычно.

2 голосов
/ 19 мая 2011

Это похоже на XML, но это недопустимый XML. В XML у вас есть корневой элемент, который охватывает все остальные элементы.

Итак, если у вас есть эта строка в str, сделайте следующее:

str = String.Format("<root>{0}</root>", str);
2 голосов
/ 19 мая 2011

Это потому, что каждый элемент находится на одном уровне. Должен быть «корень», который охватывает их всех. Оберните их в произвольный узел, скажем <root>...</root>, затем загрузите новую строку в xmlDocument.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...