Я разбираю строку xml с помощью xmlreader в C#, но, поскольку я разбираюсь, мне иногда нужно получить полный контент узла, включая дочерние элементы с тегами, и по-прежнему иметь возможность продолжить синтаксический анализ.Получить детей как строку с xmlreader и C#
ReadInnerXML и ReadOutterXML разбить все для меня
пример XML:
<?xml version="1.0" standalone="yes"?>
<main>
<parse1> //finding this will get full inner or outter xml - either one - my issue
<parse2 /> // even getting the children above might still need parse chldren
<negligeable /> // not all children interest me
</parse1>
<parse3>some text</parse3> // not all children of main are the same but all need be parsed
</main>
Надежда это дает вам общее представление о том, что мне нужно
я могу разобрать 2 и 3 прямо сейчас и игнорировать то, что мне не нужно, но если я использую ReadInnerXML или ReadOutterXML, когда я нахожу тег, тогда он не позволит мне разобрать что-нибудь еще - даже тег, который находится снаружи.
ReadInnerXML и ReadOutterXML сделать возвращает текст, мне нужно правильно, но вызывают все остальное не будет прочитан
EDIT: как на dasblinkenlight предложение приемлемо, некоторый код:
using (XmlReader reader = XmlReader.Create(new StringReader(XmlString)))
{
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
switch (reader.Name)
{
case "parse1":
Console.WriteLine("Contents of Parse 1: {0}", ?function here?);
break;
case "parse2":
Console.WriteLine("Parse 2 tag exists");
break;
case "parse3":
Console.WriteLine("Contents of Parse 3: {0}", Reader.ReadElementContentAsString());
break;
}
break;
}
}
}
Результат должен быть (с учетом тест XML)
Contents of Parse 1: <parse2 /><negligeable />
Parse 2 tag exists
Contents of Parse 3: some text
Am также пытается ReadSubTree
Любые подсказки?
это очень трудно понять, в чем проблема, не видя код. Не могли бы вы добавить некоторые из своих C# к вашему вопросу, чтобы проиллюстрировать проблему? – dasblinkenlight
нормально, но проблема не в коде, а в том, о чем я прошу - в основном, итерации в два раза тот же узел - я скоро добавлю код образца – 537mfb
Если я правильно вас понимаю, 'ReadSubtree' не поможет, поскольку он позиционирует оригинал читатель в конце элемента, на который он вызывается. Все, что он действительно делает, - это «запечатанный» читатель, который видит только этот элемент. Но я должен добавить, что я не совсем понимаю, что вы пытаетесь сделать. Пожалуйста, уточните свой вопрос, если это возможно. – harpo