Chaegie Ответов: 0

C# вставить новый тег с помощью xelements


у меня есть xml-файл, где мне нужно проверить идентификатор, если он совпадает, основываясь на уже собранном списке идентификаторов. Текст/фактическое слово, которое должно быть помечено, было основано на index. startIndex и EndIndex. см. ниже пример xml


id =123
StartIndex =20
EndIndex =24
Тег для вставки = <action>
Примечание: при получении позиции текстовый тег не включается во время подсчета голосов.
<xml>
<id ="123"="">
the quick <bold>brown</bold> fox jump over the lazy dog. The house full of excitement. The blue car is very nice



Ожидаемый результат
<id ="123"="">
the quick <bold>brown</bold> fox <action>jump</action> over the lazy dog. The house full of excitement. The blue car is very nice


Что я уже пробовал:

private  void GetPreText(IEnumerable<xelement> innodLevels, string _id, ref string innodeLevelValue, ref string tagUsed)
        {
            string pre = string.Empty;
            foreach (var innod in innodLevels)
            {
                string id = innod.Attributes(innod.GetDefaultNamespace() + "id").FirstOrDefault().Value;
                
                if (_id == id)
                {
                    innodeLevelValue = innod.ToString();
                    if (innod.Descendants(innod.GetDefaultNamespace() + "pre").FirstOrDefault().Value == null)
                    {
                        pre = innod.Descendants(innod.GetDefaultNamespace() + "table").FirstOrDefault().Value;
                        tagUsed = "";
			//i need to insert the tag here using the pre variable content
                    }
                    else
                    {
                        pre = innod.Descendants(innod.GetDefaultNamespace() + "pre").FirstOrDefault().Value;
			//i need to insert the tag here using the pre variable content


                    }
                    
                    break;
                }
            }

        }<table></table>

Maciej Los

Соори, но твой вопрос не совсем ясен.
1) Ваш xml-контент является неполным, поэтому мы не можем обработать его и проверить ваш код,
2) предполагая, что:

pre = "the quick <bold>brown</bold> fox jump over the lazy dog. The house full of excitement. The blue car is very nice";

pre.Substring(20,4) возвращается "n</b, так что текст после изменений будет:
the quick <bold>brow<action>n</b</action>old> fox...

Chaegie

ниже приведен мой пример ввода xml. я загружаю указанный xml-файл с помощью xdocument

&ЛТ;xpre код="123"&ГТ;&ЛТ;пункт&ГТ;быстрый &ЛТ;смелые&ГТ;коричневый&ЛТ;/смелый&ГТ; лиса скачет над ленивой собакой. Дом был полон возбуждения. Синий автомобиль это очень хорошая&ЛТ;/п&ГТ;




у меня есть объект

объект x;
x.ID= 123;
х.параметр startindex =20
х.endindex включительно = 24
x.Opentag = <action>
x.Closetag =

ожидаемый результат.

&ЛТ;xpre код="123"&ГТ;&ЛТ;пункт&ГТ;быстрый &ЛТ;смелые&ГТ;коричневый&ЛТ;/смелый> У лиса &ЛТ;действий&ГТ;прыгать&ЛТ;/действий&ГТ; через ленивую собаку. Дом был полон возбуждения. Синий автомобиль это очень хорошая&ЛТ;/п&ГТ;

0 Ответов