2014-07-07 98 views
0

我试图更新XML节点,虽然它不会生成错误,但它不更新该值。XML替换节点值

的XML

<ParameterValues> 
    <ParameterValue> 
    <Name>TO</Name> 
    <Value>[email protected]</Value> 
    </ParameterValue> 
    <ParameterValue> 
    <Name>IncludeReport</Name> 
    <Value>True</Value> 
    </ParameterValue> 
    <ParameterValue> 
    <Name>RenderFormat</Name> 
    <Value>MHTML</Value> 
    </ParameterValue> 
    <ParameterValue> 
    <Name>Subject</Name> 
    <Value>@ReportName was executed at @ExecutionTime</Value> 
    </ParameterValue> 
    <ParameterValue> 
    <Name>IncludeLink</Name> 
    <Value>True</Value> 
    </ParameterValue> 
    <ParameterValue> 
    <Name>Priority</Name> 
    <Value>NORMAL</Value> 
    </ParameterValue> 
</ParameterValues> 

更新字符串。

  1. (这是林特林改变 - <Value>[email protected]</Value>

    集@ input.modify('替换值(/的parameterValues /的parameterValue /名称/值/文())[1] “[email protected]”')

如果我改变来更新它以‘[email protected]’更新名称节点字符串?

1. <Name>TO</Name>

组@ input.modify( '取代的值(/的parameterValues /的parameterValue /名称/文本())[1] “[email protected]”')

结果示例

<ParameterValues> 
    <ParameterValue> 
    <Name>[email protected]</Name> 
    <Value>[email protected]</Value> 
    </ParameterValue> 
+0

你究竟试过了什么?什么是语言或工具'set'在执行? – Unihedron

+0

抱歉,忘了提及我在做什么。 TSQL。我所尝试的是: - 将set @ input.modify('将(/ ParameterValues/ParameterValue/Name/Value/text())[1]的值替换为“[email protected]”) – user3810822

+0

请将'TSQL'添加到您的问题标签中,以便该领域的专家可以帮助您。 xP – Unihedron

回答

1

所有你想要的爵士更新...尝试使用此

$doc = new DOMDocument(); 
$doc->load(xml file name); 

$doc->formatOutput = true; 
$doc->getElementsByTagName("Value")->item(0)->nodeValue = $TheNewValue; 
$doc->save("pathwheroverwritethefile"); 

我希望我可以帮助....我认为项目上的数组值是错误...

0

您在更新语句中指定了额外的Name节点。

试试这个来代替第一个ParameterValue节点的值。

replace value of (/ParameterValues/ParameterValue/Value/text())[1] 
        with "[email protected]" 

如果你想确保你只能更换ParameterValue其中Name是价值TO你应该ParameterValue节点上使用的谓词。

replace value of (/ParameterValues/ParameterValue[Name = "TO"]/Value/text())[1] 
        with "[email protected]"') 
+0

谢谢。我新来的很简单,但是看不到那些阿甘树。 – user3810822