Что нового

Как добавить данные в определенную секцию XML файла?

vovsla

Осваивающий
Сообщения
607
Репутация
36
Пробовал добавлять данные с помощью команды _XMLCreateChildNode, получается создать подсекцию в главной секции, но не получается добавлять секцию в уже существующие подсекции. Подскажите пожалуйста...
 
Автор
V

vovsla

Осваивающий
Сообщения
607
Репутация
36
Скопипастил пример, но вместо xml файла который указан как результат я получаю 2 строки
<?xml version="1.0"?>
<SESSION_FILE><ASSET_INFORMATION/></SESSION_FILE>

Код:
#include <_XMLDOMWrapper.au3>

Global $sXmlFile = @ScriptDir & "\testxml.xml"

; Create array of "TARGET_STATE" data to add
Global $avArray[4][5]
For $n = 0 To UBound($avArray) - 1
    $avArray[$n][0] = String(603 + $n) ; ID_NUMBER
    $avArray[$n][1] = String(603 + $n) ; ORIGINAL_ID
    $avArray[$n][2] = "0" ; PHYSICAL_PARENT
    $avArray[$n][3] = "1" ; SELECTED_POLICY
    $avArray[$n][4] = "" ; VULN_STATE
Next

; Create XML file and basic path
_XMLCreateFile($sXmlFile, "SESSION_FILE", False)
_XMLFileOpen($sXmlFile)
_XMLCreateRootChild("ASSET_INFORMATION")
_XMLCreateChildNode("SESSION_FILE/ASSET_INFORMATION", "TARGET_INFORMATION")

For $n = 0 To UBound($avArray) - 1
    ; Add required "TARGET_STATE" node
    _XMLCreateChildNode("SESSION_FILE/ASSET_INFORMATION/TARGET_INFORMATION", "TARGET_STATE")

    ; Add child nodes
    _XMLCreateChildNode("SESSION_FILE/ASSET_INFORMATION/TARGET_INFORMATION/TARGET_STATE[" & $n + 1 & "]", "ID_NUMBER", $avArray[$n][0])
    _XMLCreateChildNode("SESSION_FILE/ASSET_INFORMATION/TARGET_INFORMATION/TARGET_STATE[" & $n + 1 & "]", "ORIGINAL_ID", $avArray[$n][1])
    _XMLCreateChildNode("SESSION_FILE/ASSET_INFORMATION/TARGET_INFORMATION/TARGET_STATE[" & $n + 1 & "]", "PHYSICAL_PARENT", $avArray[$n][2])
    _XMLCreateChildNode("SESSION_FILE/ASSET_INFORMATION/TARGET_INFORMATION/TARGET_STATE[" & $n + 1 & "]", "SELECTED_POLICY", $avArray[$n][3])
    _XMLCreateChildNode("SESSION_FILE/ASSET_INFORMATION/TARGET_INFORMATION/TARGET_STATE[" & $n + 1 & "]", "VULN_STATE", $avArray[$n][4])
Next
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
Forbidden

You don't have permission to access /forum/topic/102996-issue-writing-to-xml-file/ on this server.

--------------------------------------------------------------------------------

Apache Server at www.autoitscript.com Port 80
 

beliy

Продвинутый
Сообщения
372
Репутация
72
Vovsla
Данный код у меня работает корректно. Какая у вас версия Autoit? Проверьте целостность вашего _XMLDOMWrapper.au3, я брал отсюда - http://my-autoit.googlecode.com/files/_XMLDomWrapper.au3

C2H5OH
Это походу админ работал в тот момент, сейчас ссылка рабочая...
 
Автор
V

vovsla

Осваивающий
Сообщения
607
Репутация
36
Просто была старая библиотека Dec 15, 2005, с новой все работает.
Только остался один нюанс, вот с такими длинными заголовками библиотека не работает или я что-то не так делаю...
Код:
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <UserData>
                <ProductKey>
                    <Key>XXXXX</Key>
                    <WillShowUI>OnError</WillShowUI>
                </ProductKey>
            </UserData>
        </component>
    </settings>
   </unattend>
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Vovsla,
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 
Верх