Попытка добавить элемент в существующий файл XML с помощью PowerShell. Я рассмотрел несколько примеров, и мой скрипт «add» работает, но он неуместен в элементе.
Образец XML, который я использую:
<?xml version="1.0" encoding="UTF-8"?>
<config version="" id="" rev="" marker="">
  <plugins>
    <local>
      <plugin class="LDAPPlugin">
        <config version="0.2">
          <users>
            <search>
              <priority>1</priority>
              <suspended>false</suspended>
              <scope>ALL</scope>
              <orgName>AdmOrg</orgName>
              <filter>LDAPFilter1</filter>
            </search>
          </users> 
        </config>
      </plugin>
    </local>
  </plugins>
</config>
Я хочу добавить дополнительный элемент <search></search> в вышеупомянутый файл XMl.  Используя этот код, я был наполовину успешен:
$xmlPath = "C:\productionXML.xml"
$userSearchFilter = "C:\inputData.csv"
$doc = [XML](Get-Content -Path $xmlPath)
foreach($e in (Import-Csv -Path $userSearchFilter))
{
    [STRING]$count = $doc.config.plugins.local.plugin.config.users.search.Count + 1
    $element = $doc.config.plugins.local.plugin.config.users.search[0].clone()
    $element.priority = $count
    $element.suspended = $e.userSuspended
    $element.scope = $e.userScope
    $element.orgName = $e.userOrgMappingAttribute
    $element.filter = $e.userFilter
    $doc.DocumentElement.AppendChild($element)
}
$doc.Save("C:\newProductionXML.xml")
Когда я выполняю сценарий, элемент добавляется, но в нижней части XML, например так:
<?xml version="1.0" encoding="UTF-8"?>
<config version="" id="" rev="" marker="">
  <plugins>
    <local>
      <plugin class="LDAPPlugin">
        <config version="0.2">
          <users>
            <search>
              <priority>1</priority>
              <suspended>false</suspended>
              <scope>ALL</scope>
              <orgName>AdmOrg</orgName>
              <filter>LDAPFilter1</filter>
            </search>
          </users> 
        </config>
      </plugin>
    </local>
  </plugins>
</config>
<search>
  <priority>1</priority>
  <suspended>false</suspended>
  <scope>ALL</scope>
  <orgName>AdmOrg</orgName>
  <filter>NewLDAPFilter</filter>
</search>
Я запустил этот код для "менее сложных" XML-файлов, и тогда он выполняет именно то, что предполагалось, но, когда я запускаю его для нужного мне XML-файла, он помещает дополнительный элемент в корень XML-файла. Пожалуйста, прости меня за отсутствие точного языка в отношении XML, я не часто работаю с XML таким образом. Любая помощь с благодарностью.
