Кой е реда на тага IXMLNode в целия XML

4 отговора 0 прегледа
#1

Кой е реда на тага IXMLNode в целия XML

В XML документ достъпа до определн таг е с IXMLNode.
Има ли вътрешна функция за извличане на номера на реда в който се намира тага.

<ROOT>
<TAG_1>
<TAG_1.1>
<TAG1.1.1/>
</TAG_1.1>
</TAG1_1>
</ROOT>

Тръбва ми функция която да ми върне че <TAG_1.1> е на 3-ти ред от
оригиналния текст намиращ се IXMLNode.OwnerDocument.DocumentElement.XML

(Delphi7)

С мой функции знам как да го направя , въпроса е има ли нещо вградено в IXMLNode или TXMLDocument ???

prlm vr 10x

Отговор
в отговор на EFEX #2

номера на реда ???

На мен доколкото ми е известно в XML няма понятие номер на реда.

Отговор
в отговор на Йopдaн #3

Re: номера на реда ???

Да приемем тогава понятието номер на TAG-а в линейното подреждане на дървото....
Който има понятие от XML ще ме разбере какво искам.... нямам намерение да влизам в лексиката на понятия и пр... благодаря все пак...


Отговор
в отговор на Йopдaн #4

Малко уточнения

Независимо как е изграден XML-a предполагам всеки потребител ще го разглежда под формата на редове.... и така както си обработвам един XML който очаквам да е попълнен от потребител...трябва по някое време да му кажа че в еди кой се таг на еди кой си ред си ми подал грешен или празен атрибут или нещо подобно...
Щото ако имам няколко тага с едни и същи имена и едни и същи атрибути >>> горкия потребител....

Отговор
в отговор на EFEX #5

Re: Малко уточнения

Предполагам, че XPath ще ти свърши работа (напр.):
/ROOT/TAG_1/TAG_1.1[1]
>> Щото ако имам няколко тага с едни и същи имена
Има -- [1] показва за кой таг подред се отнася.

Или още по-добре /ROOT/TAG_1/TAG_1.1[id='1'], където id е уникален атрибут, като ключ в БД.

Така може направо да се ползва XmlSpy напр.
Въпреки, че не вярвам потребителя да пише xml-и с Notepad, а ще се генерира от някаква програма. Така че най добре, като има грешки, на тази програма да се връща xml с XPath на грешките и в същата програма да се визуализира по приемлив за човек начин.

Отговор