C #: Как я могу отфильтровать результаты файла XML на основе атрибута дочернего элемента?

Файловый объект является буфером . Когда вы читаете из буфера, потребляемая вами часть (позиция чтения сдвигается вперед). Когда вы читаете весь файл, позиция чтения находится в EOF, поэтому он ничего не возвращает, потому что читать нечего.

Если вам по какой-то причине необходимо сбросить позицию чтения на файловый объект, вы можете сделать:

f.seek(0)
3
задан Steve 5 March 2019 в 15:29
поделиться

1 ответ

Вы только смотрите на атрибут Series в этом подзапросе :

 where (
    from thread in el.Elements("ThreadDensity")
    where
        (string)thread.Attribute("Series") == "UNF"
    select thread).Any() &&
    ((string)el.Element("Size") == "#1")

, который просто проверяет, есть ли какой-либо элемент ThreadDensity внутри [ 115] имеет правильную серию.

Код, в котором вы фактически создаете UTSBolt, просто получает первый элемент ThreadDensity:

select new UTSBolt(
    (string)el.Element("Size"),
    (double)el.Element("MajorDiameter"),
    (double)el.Element("ThreadDensity")
);

Я подозреваю, что вы хотите что-то вроде:

[ 112]
0
ответ дан Jon Skeet 5 March 2019 в 15:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: