Я анализирую строку xml с использованием 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 действительно возвращают нужный мне текст, но все остальное не анализируется
РЕДАКТИРОВАТЬ: в соответствии с предложением 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
Также пытаюсь прочитать ReadSubTree
Есть подсказки?