XML-доступ содержит - PullRequest
       1

XML-доступ содержит

0 голосов
/ 13 февраля 2012

У меня есть один XML-файл структуры, который упорядочен как

<AllReport>
    <Report>
            <DataPoint1>
            </DataPoint1>
            <DataPoint2>
            </DataPoint2> 
            <DataPoint3>
            </DataPoint3>     
    </Report>
    <Report>
            <DataPoint1>
            </DataPoint1>
            <DataPoint2>
            </DataPoint2> 
            <DataPoint3>
            </DataPoint3> 
    </Report>
     so on so forth....
</AllReport>

Есть ли лучший способ прямого доступа к DataPoint1 без использования мультижировых циклов?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2012

Выражения XPath /AllReport/Report/DataPoint1 и //DataPoint1 будут возвращать список всех узлов DataPoint1 в вашем примере документа.Затем вы можете выполнить итерацию по этому списку, используя любые средства, которые предоставляет вам ваша библиотека DOM или выбранный язык.

То, что вы будете использовать, будет зависеть от характера самого документа.Если каждый экземпляр DataPoint1, к которому вы хотите получить доступ, вложен одинаково, используйте первый.Если вы не можете быть уверены в вложенности DataPoint1 (возможно, в некоторых отчетах есть подотчеты или имеется «сводка» DataPoint1 потомок AllReport, тогда последний может быть предпочтительным.

Этокак правило, лучше всего выбирать более точное выражение как по причинам производительности, так и по причинам обнаружения ошибок.

0 голосов
/ 13 февраля 2012

В C # вы можете использовать LINQ to XML

 var xmlItems = XDocument.Load("yourXML);
 var result = from e in xmlItems.Descendants("Report").Descendants("DataPoint1");

foreach(item in result ){

  //it goes though all DataPoint 1

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