2017-03-20 2 views
3

안녕하세요. 저는 XML 파일을 가지고 있습니다. XML 파일에서 특정 속성 값을 읽고 싶습니다. 어떻게 FAKE에서이 작업을 수행 할 것입니까? 난 그냥 가짜 문서 페이지에 그것을 알아 냈어 내가 설명을 볼 수 있습니다xml 파일에서 속성 값을 읽는 방법 - FAKE F # MAKE

https://github.com/fsharp/FAKE/blob/master/src/app/FakeLib/XMLHelper.fs#L14-14 

에서 XMLHelper 클래스의 XMLRead 기능을 사용할 수 있다는 것을 발견하지만 이해할 수 없었다 F # 및 FAKE.And 새로운 오전, 제발 도와주세요 방법 예를 들어 그런 것이 없기 때문에 이것을 할 수 있습니다.

나는 거대한 XML 파일을 가지고 있지만, 그 파일의 일부를 언급하고있다. XML 파일은 다음과 같습니다 :

<version> 
    <major number="2"> 
    <minor>1</minor> 
    <build>1</build> 
    <revised>1</revised> 
    </major> 
</version> 

언급 된 속성에서 값을 읽는 방법을 알려주십시오.

답변

4

몇 가지 게시물을 살펴보면 관련 질문을 찾을 수 있습니다. 짧은 대답은 내 'build.fsx'파일에서이 같은 뭔가를해야만 할 수 있다는 것입니다 : 당신이 빌드 할 때

// Build the main module with MSBuild 
Target "BuildMain" (fun _ -> 
    for s in XMLHelper.XMLRead true "./myxml.xml" "" "" "/version/major/minor" 
    do trace s 
    !! "./Kapoin_03_Main/Kapoin_03_Main.fsproj" 
    |> MSBuild buildDir "Build" buildProps 
    |> Log "Main build output: ") 

이 경우 단지 콘솔에 "1"을 쓸 것이다.

편집 : 다른 대상을 사용하는 경우는의 라인을 따라 뭔가를 할 수있는 변수로 값을 저장하려면 다음

let minver = 
    XMLHelper.XMLRead 
    true "./myxml.xml" "" "" "/version/major/minor" 
    |> Seq.head 
+0

안녕, 노력을 주셔서 감사합니다,하지만 난 어떤 생각 시도는 다른 대상의 속성 값을 읽는 것입니다 (솔루션을 빌드하는 중이 아님). 또는 다른 스크립트에있을 수 있습니다. 그런 다음 그 값을 다른 .yaml 파일에 추가 할 수 있도록 해당 값을 변수에 저장하려고합니다. – JFI

+0

@ johnfernandes, 의견을 추가하는 대신 수행하려는 내용에 대한 질문을 업데이트하는 것이 좋습니다. 도움을 주려는 사람은 의견을 통해 추가 세부 정보를 수집하고 수집 할 필요가 없습니다. –

관련 문제