2017-03-24 4 views
1

저는 PowerShell에서 XML 파일을 처음으로 사용하고 있습니다. 나는 실패한 간단한 스크립트를 가지고있다. 웹 요청을 사용하여 XML 콘텐츠를 가져온 다음 나중에 처리하기 위해 폴더에 저장해야합니다. Powershell : XML을 파일에 작성하십시오.

$IP = 8.8.8.8 
$ipgeo = new-object System.Xml.XmlDocument 
$ipgeo = ([xml](Invoke-WebRequest "http://freegeoip.net/xml/$IP").Content).Response 
$ipgeo.save("c:\ipgeo\IPXML\$IP.xml") 

나는이 실행

, 나는 다음과 같은 오류 얻을 :

Method invocation failed because [System.Xml.XmlElement] does not contain a method named 'save'. At line:3 char:1 
+ $ipgeo.save("c:\ipgeo\IPXML\$IP.xml") 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo: InvalidOperation: (save:String) [], RuntimeException 
+ FullyQualifiedErrorId : MethodNotFound 

내가 뭘 잘못하고 여기에

코드인가?

당신은 루트 노드의 OuterXml 속성을 참조하여 XML 문서의 일부를 저장할 수 있습니다
+0

@CodeCaster'System.Xml.XmlElement' '저장'라는 방법을 포함하거나하지 않습니다 '저장'- 캐스팅이 문제이므로 대문자 변경은 도움이되지 않습니다. – arco444

+0

당신 말이 맞습니다. 'System.Xml.XmlDocument' [Save() 메소드가 있음] (https://msdn.microsoft.com/en-us/library/dw229a22(v=vs.110) .aspx), 덮어 쓰기 중입니다. '$ ipgeo'. – CodeCaster

+0

@CodeCaster 글쎄 그것은 * 그 오류를 제공합니다. 이는 *. * 'XmlElement' 인'.Response'가 선택 되었기 때문에 다음 코드 행에서 다른 것을 덮어 쓰면 인스턴스화 할 필요가 없습니다. – arco444

답변

2

은 당신이 원하는 :

# instead of $ipgeo.Save("c:\ipgeo\IPXML\$IP.xml") 
$ipgeo.OuterXml |Out-File "c:\ipgeo\IPXML\$IP.xml" 
+0

그게 효과가! 믿을 수 없을 정도로 빠른 응답을 해주셔서 정말 고마워요! – Doug

+0

한 가지 더 질문합니다. 방금 작성한 XML 파일을 어떻게 읽을 수 있습니까? 나는 시도했다 : $ ipgeo = [System.Xml.XmlDocument] (Get-Content c : \ ipgeo \ IPXML \ $ IP.xml). – Doug

+0

나는 그것을 이해했다. $ ipgeo = ([System.Xml.XmlDocument] (Get-Content c : \ ipgeo \ IPXML \ $ IP.xml))를 사용해야했습니다. – Doug

관련 문제