첫째을 형제 기존 XML 노드에서 변수를 생성, 제가 PowerShell을에서 초보자임을 언급하고 사전에 도움을 모든 사람에게 감사의 말씀을하자PowerShell을 -
나는 PowerShell 스크립트의 기능을 가지고
$fileElement = $xml.CreateElement("FileRef")
$fileElement.SetAttribute("Id",$refId)
이 새로운 XML 노드를 만듭니다. 따라서 노드 ID가 FileRef 인 여러 노드 형제를 사용할 수 있습니다. 각각 다른 ID 특성을가집니다. $ fileElement 변수는 나중에 $ fileElement.AppendChild를 사용하여 자신의 자식 노드가 추가 된 스크립트에서 다시 사용됩니다.
나는 이제 동일한 $ refId 변수를 여러 번 통과시키는 스크립트 함수를 호출하는 루프가있는 경우가 있습니다. 내가 가진 문제는 동일한 ID를 가진 FileRef 노드 형제가 출력물에 중복되어 있다는 것입니다.
특정 상황에서 id = $ refId를 사용하여 형제가있는 기존 FileRef 노드에서 $ fileElement 변수를 만듭니다 (스크립트에서 나중에 변수에 AppendChild를 사용할 수 있도록) id = $ refId (중복을 일으키는)라는 새로운 형제 노드를 만드는 대신에. 예 : 나는 기존의 노드 형제를 찾아야 할 때
if(circumstances)
{
$fileElement = $xml.CreateElement("fileRef")
$directoryRefElement.SetAttribute("Id",$refId)
}
else # use existing node
{
$fileElement = ""
$currentNode = $xml.get_Item("fileRef")
do
{
$currentId = $currentNode.GetAttribute("Id")
if ($currentId -eq $refId)
{
$fileElement = $currentNode
}
else
{
$tempNode = $currentNode
$currentNode = $tempNode.get_NextSibling()
}
}
while($fileElement -eq "")
}
, 나는 첫 번째 노드를 얻을 :
if(circumstances)
{
# first call to the function in the loop, so create new node sibling
$fileElement = $xml.CreateElement("FileRef")
$fileElement.SetAttribute("Id",$refId)
}
else
{
# node sibling already exists, do not create new node,
# use existing node sibling with id = $refId
create xml node variable $fileElement here
}
감사