1

I have a xml file and i want to change 2 values inside the XML

XML:

<INSTALLTYPE Value="Standalone" />  to  <INSTALLTYPE Value="Workstation" />

<ELEVATELICENSE Value="None" />     to  <ELEVATELICENSE Value="Workgroup" />

I tested several scripts which are provided in this database, but i am not able to change the values.

Powershell:

$path = "C:\temp\Kofax.xml"
$xml = [xml](Get-Content -Path $path)
$xml.FileZilla3.VIRTUALRESCAN.INSTALLTYPE
$node = $xml.FileZilla3.VIRTUALRESCAN.INSTALLTYPE| where {$_.Name -eq 'Standalone'}
$node.'#text'= 'Workstation'
$xml.Save($path)

XML:

<?xml version="1.0" encoding="utf-8" ?>
<Registry>
    <HKEY_LOCAL_MACHINE>
        <SOFTWARE>
            <KOFAX>
                <CONDOR Value="0" Type="integer">
                    <OEMCODE Value="FUJITSU" />
                    <OEMSUBCODE Value="fi6670" />
                    <VRSSERVERS Value="0" Type="integer" />
                    <ECLIPSELOGGING Value="0" />
                    <MULTICOREPOLICY Value="0" Type="integer" />
                    <MULTICOREMODE Value="4" Type="integer" />
                    <MULTICOREQUEUESIZE Value="4" Type="integer" />
                    <MULTICOREDUALSIDEIP Value="1" Type="integer" />
                    <INITVIVONSEPTHREAD Value="1" Type="integer" />
                    <VRSELITEDEMO Value="0" Type="integer" />
                    <DISABLETASKWINDOWS Value="0" Type="integer" />
                    <V1.0>
                        <ERRORAPPPATH>
                            <DEFAULT Value="C:\Program Files (x86)\Kofax\Capture\ImgCtls\bin" />
                        </ERRORAPPPATH>
                        <HELPPATH>
                            <DEFAULT Value="C:\ProgramData\Kofax\Vrs\Help" />
                        </HELPPATH>
                        <KFXSCAN.PXW>
                            <DEFAULT_SOURCE Value="Fujitsu fi-6670A with VRS with AIPE" />
                        </KFXSCAN.PXW>
                        <SCANNERID>
                            <SELECTED Value="Fujitsu fi-6670A" />
                        </SCANNERID>
                    </V1.0>
                    <VERSION Value="V5.1.0265" />
                    <KOFAXVERSION Value="5.1.1.13.0.2084" />
                    <PATH Value="C:\Program Files (x86)\Kofax\Capture\ImgCtls\" />
                </CONDOR>
                <VIRTUALRESCAN>
                    <SILENTINSTALL Value="FALSE" />
                    <ADMININFO>
                        <ASCENTINSTALL Value="FALSE" />
                    </ADMININFO>
                    <SHAREDELEMENTFOLDER Value="C:\ProgramData\Kofax\Vrs\Shared" />
                    <SHAREDELEMENTSERVER Value="" />
                    <VRSLANGUAGE Value="" />
                    <VRSLANGUAGEID Value="0" Type="integer" />
                    <KCLANGUAGE Value="" />
                    <PROFILESYNCTIME Value="3" Type="integer" />
                    <SYNCTIMETICKS Value="" />
                    <INSTALLDIRECTORY Value="C:\Program Files (x86)\Kofax\Capture\ImgCtls\" />
                    <INSTALLTYPE Value="Standalone" />
                    <ORIGINALINSTALLTYPE Value="Standalone" />
                </VIRTUALRESCAN>
                <KOFAX_ISIS_SCANNER_SOURCE>
                    <SOURCE_NAME Value="Fujitsu fi-6670A with VRS with AIPE" />
                </KOFAX_ISIS_SCANNER_SOURCE>
                <KOFAX_TWAIN_DATA_SOURCE>
                    <SOURCE_NAME Value="Fujitsu fi-6670A with VRS with AIPE" />
                </KOFAX_TWAIN_DATA_SOURCE>
            </KOFAX>
            <KOFAX_IMAGE_PRODUCTS>
                <VIRTUALRESCAN>
                    <INSTALLDIRECTORY Value="C:\Program Files (x86)\Kofax\Capture\ImgCtls\" />
                    <PRODUCTCODE Value="{12345678-1234-1234-1234-123456789101}" />
                    <ADMININFO>
                        <ACCEPTEDEULA Value="TRUE" />
                        <ACTIVATEREMINDERDAYS Value="1" />
                        <AFFINITYID Value="000000" />
                        <ASCENTINSTALL Value="FALSE" />
                        <COMPANY Value="" />
                        <EMAIL Value="" />
                        <GRACENOTIFIED Value="FALSE" />
                        <INSTALLDIRECTORY Value="C:\Program Files (x86)\Kofax\Capture\ImgCtls" />
                        <LASTACTIVATEREMINDER Value="0x00" />
                        <LICENSEACTION Value="" />
                        <LICENSECODE Value="" />
                        <PARTNUMBER Value="" />
                        <PRODUCTCODE Value="" />
                        <REGISTERED Value="FALSE" />
                        <SENDEMAIL Value="TRUE" />
                        <SERIALNUMBER Value="" />
                        <SILENTINSTALL Value="FALSE" />
                        <SKIPREGISTRATION Value="FALSE" />
                        <STARTMENUFOLDER Value="" />
                        <USERNAME Value="" />
                    </ADMININFO>
                </VIRTUALRESCAN>
            </KOFAX_IMAGE_PRODUCTS>
        </SOFTWARE>
    </HKEY_LOCAL_MACHINE>
    <HKEY_CURRENT_USER>
        <SOFTWARE>
            <KOFAX>
                <CONDOR>
                    <V1.0>
                        <SETTINGS>
                            <HWERRORS Value="1" Type="integer" />
                            <STOPMODE Value="3" Type="integer" />
                            <ELEVATELICENSE Value="None" />
                            <IGNORECAPTURELICENSE Value="0" Type="integer" />
                            <LEGACYBCLICENSE Value="0" Type="integer" />
                            <PERFORMHOSTSMOOTHING Value="0" Type="integer" />
                            <UPGRADECAPTURELICENSE Value="0" Type="integer" />
                        </SETTINGS>
                    </V1.0>
                </CONDOR>
            </KOFAX>
        </SOFTWARE>
    </HKEY_CURRENT_USER>
</Registry>

Error Message:

The property "#text" was not found for this object. Make sure that the property exists and can be set. In line: 5 characters: 1 + $node.'#text'= 'Workstation' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : PropertyNotFound

1 Answer 1

2

Use XPath!

To select the INSTALLTYPE node with XPath:

# Query document for INSTALLTYPE nodes at any level
$installTypeNodes = $xml.SelectNodes('//INSTALLTYPE')

# Iterate over the nodes found
foreach($installTypeNode in $installTypeNodes){
  # Test if `Value` attribute has expected value
  if($installTypeNode.Value -eq 'Standalone'){
    # Overwrite it if so
    $installTypeNode.Value = 'Workstation'
  }
}

Repeat for the ELEVATELICENSE noded before calling $xml.Save() :)

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.