У меня есть файл XML, который структурирован следующим образом:не удается получить ни одного XElement из XML
<scan client="Computer1" end="9/20/2016 7:00:00 AM" start="9/20/2016 7:00:00 AM">
<childfile>
<name>file.ext</name>
<lastmodified>8/31/2016</lastmodified>
<age>19</age>
</childfile>
<childfile>
<name>file2.ext</name>
<lastmodified>9/1/2016</lastmodified>
<age>18</age>
</childfile>
<childfile>
<name>file3.ext</name>
<lastmodified>8/19/2016</lastmodified>
<age>31</age>
</childfile>
<childfile>
<name>file4.ext</name>
<lastmodified>8/23/2016</lastmodified>
<age>27</age>
</childfile>
</scan>
<scan client="Computer2" end="9/20/2016 7:00:00 AM" start="9/20/2016 7:00:00 AM">
<childfile>
<name>file.ext</name>
<lastmodified>8/31/2016</lastmodified>
<age>19</age>
</childfile>
<childfile>
<name>file2.ext</name>
<lastmodified>9/1/2016</lastmodified>
<age>18</age>
</childfile>
<childfile>
<name>file3.ext</name>
<lastmodified>8/19/2016</lastmodified>
<age>31</age>
</childfile>
<childfile>
<name>file4.ext</name>
<lastmodified>8/23/2016</lastmodified>
<age>27</age>
</childfile>
</scan>
Я посылаю новый XML-элемент, который будет выглядеть как те выше, это будет что-то вроде:
<scan client="Computer1" end="9/25/2016 7:00:00 AM" start="9/25/2016 7:00:00 AM">
<childfile>
<name>file.ext</name>
<lastmodified>8/31/2016</lastmodified>
<age>19</age>
</childfile>
<childfile>
<name>file2.ext</name>
<lastmodified>9/1/2016</lastmodified>
<age>18</age>
</childfile>
</scan>
Как найти исходный XML-файл, чтобы узнать, имеет ли он раздел сканирования, который имеет атрибут клиента, который соответствует предоставленному, и если он соответствует одному, замените этот элемент на тот, который указан. Если он не найдет соответствия, ему нужно будет просто добавить этот элемент к существующим.
я пытался использовать:
originalXML.Elements("scan").SingleOrDefault(e => e.Attribute("client").Value == client)
, где клиент вар устанавливается с помощью
string client = replacementXML.Attribute("client").Value;
кажется, что это возвращает нуль каждый раз, даже если я проверил строку клиента и устанавливается на «Компьютер1».
Любые мысли о том, почему это всегда возвращает null?
Что произойдет, если вы попробуете 'originalXML.Root.Elements (« scan ») ...' – Jonesopolis
Либо ваш xml неверен (у xml может быть только один корневой элемент), либо вы не показываете весь xml. Это затрудняет нам определение того, как получить доступ к определенному элементу. – Kevin
@Jonesopolis, если я изменю его на originalXML.Root.Elements .... он по-прежнему возвращает null. – Vladmere