2

PowerShellは初めてではありませんが、XML解析は初めてです。基本的には、単なるxmlファイルであるOPFファイルからタイトル、作成者、および発行者の情報を抽出したいと思います。以下の本は、Googleのepubv3サンプルコレクションのMobyDickです。

<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://www.idpf.org/2007/opf" version="3.0" xml:lang="en" unique-identifier="pub-  id" prefix="cc: http://creativecommons.org/ns#">
    <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
        <dc:title id="title">Moby-Dick</dc:title>
        <meta refines="#title" property="title-type">main</meta>
        <dc:creator id="creator">Herman Melville</dc:creator>
        <meta refines="#creator" property="file-as">MELVILLE, HERMAN</meta>
        <meta refines="#creator" property="role" scheme="marc:relators">aut</meta>
        <dc:identifier id="pub-id">code.google.com.epub-samples.moby-dick-basic</dc:identifier>
        <dc:language>en-US</dc:language>
        <meta property="dcterms:modified">2012-01-18T12:47:00Z</meta>
        <dc:publisher>Harper &amp; Brothers, Publishers</dc:publisher>
        <dc:contributor id="contrib1">Dave Cramer</dc:contributor>
        <meta refines="#contrib1" property="role" scheme="marc:relators">mrk</meta>
        <dc:rights>This work is shared with the public using the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license.</dc:rights>        
        <link rel="cc:license" href="http://creativecommons.org/licenses/by-sa/3.0/"/>
        <meta property="cc:attributionURL">http://code.google.com/p/epub-samples/</meta>
    </metadata>
</package>

私はもう試した:

[xml]$opf = gc path/to/package.opf
$opf.package.metdata

タグと属性の情報はこれでしか取得できず、テキストは取得できません。

4

1 に答える 1

3

いくつかの値を取得するには、次のような#textプロパティを使用する必要があります。

[xml] $opf = gc .\moby.opf

$title = $opf.package.metadata.title.'#text'
$creator = $opf.package.metadata.creator.'#text'
$publisher = $opf.package.metadata.publisher

Write-Host "$title written by $creator and published by $publisher"
于 2012-11-30T17:23:54.287 に答える