Я относительно новичок в использовании классов XML C#. Я даже не могу заставить читателя XML признать, что строка, которую я передаю ему, - это XML. Вот мой блок тест, который я использую, чтобы проверить основную Xml чтенияXmlReader.HasAttributes возвращает false сразу после создания
[TestFixture()]
public class LegacyWallTests
{
[Test()]
public void ReadLegacyWallFile()
{
var legacyWallText = legacyfiles.legacywall1;
{
string xmlString = legacyfiles.legacywall1;
using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
reader.HasAttributes.Should().BeTrue();
}
}
}
}
А вот XML Я пытаюсь читать
<Wall>
<Actual>
<Specifications>
<Insertion> 375.6858 916.8871 0.0000 </Insertion>
<Angle> 3.14159 </Angle>
<WallDesc> E4-1, H: 8' 1 1/8, Sh: Yes, S: 2~4~2~9-0-0~SPF~~, Spc: Single @ 16 in OC, BP: 2~4~2~12-0-0~SYP~~, CP: 2~4~2~12-0-0~SYP~~, TP: 2~4~2~12-0-0~SYP~~,\P LI: Single @ 38.75000000, CB: No, VB: No, NCT: 2~4~2~9-0-0~SPF~~, CT: 2~4~2~9-0-0~SPF~~, Pac: 2~4~2~9-0-0~SPF~~, Mir: Yes </WallDesc>
<WallNum> 1 </WallNum>
<VaporBarrier></VaporBarrier>
</Specifications>
</Actual>
</Wall>
legacyfiles.legacywall1 это имя файла XML Я добавил ресурсы моего проекта. Я знаю, что xml-файл читается, потому что вывод этой строки в консоль дает мне xml из файла. Однако, когда я создаю XmlReader и проверяю, что есть атрибуты, он говорит, что их нет. Я не знаю, что я делаю неправильно.
Чтобы ответить на ваш точный вопрос «что я делаю неправильно» - не проверять документацию и не предоставлять хороший заголовок вашему сообщению. –
Сторона примечания: XML в сообщении имеет * отсутствие атрибутов *, поэтому даже если вы действительно прочитаете его, никогда не будет случая, когда 'HasAttributes' истинно - вы можете обновить сообщение, чтобы показать XML с атрибутами. –
Приложение, которое я пишу, должно читать XML, так как мне нужен метод, который может читать этот XML как ... –