0

私は情報開発者として働いています。

Excelシートに保存されているファイル名で.ditaファイルを作成する必要があります。

.ditaファイルはXMLファイルです。ファイルの構造は同じである必要があります。構造は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<!--Arbortext, Inc., 1988-2011, v.4002-->
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN"
"concept.dtd">
<?Pub Inc?>
<concept id="concept-1-43B80068" xml:lang="en">
<title></title><?Pub Caret -1?>
<shortdesc></shortdesc>
<conbody>
<p></p>
</conbody>
</concept>

次に、これらのファイルのマップを次のように作成する必要があります。

<map xml:lang="en">
<topicref href = "topic1.dita">
<topicref href = "topic2.dita">
</topicref>
</map>

これに対する解決策を提供してください。

4

3 に答える 3

2

Excel で VBA マクロを作成することもできます。ファイル名が含まれるセルを選択し、マクロを実行します。注意: 出力で二重引用符を取得するには、二重引用符を "" のように 2 回挿入する必要があります。

Sub CreateDitaConcept()
Dim sFileName As String
Dim iFileNum As Integer

'Read filename from selected cell
sFileName = Selection.Value
'Get a free file number
iFileNum = FreeFile
'Open the file for output
Open sFileName For Output As iFileNum
'Print text to the file
Print #iFileNum, "<?xml version=""1.0"" encoding=""UTF-8""?>"
Print #iFileNum, "<!-- Arbortext etc -->"
Print #iFileNum, "<!DOCTYPE concept PUBLIC ""-//OASIS//DTD DITA Concept//EN"" ""concept.dtd"">"
Print #iFileNum, "<concept id=""concept_id"" xml:lang=""en"">"
Print #iFileNum, "<title>Concept title</title>"
Print #iFileNum, "<shortdesc></shortdesc>"
Print #iFileNum, "<conbody>"
Print #iFileNum, "<p>paragraph</p>"
Print #iFileNum, "</conbody>"
Print #iFileNum, "</concept>"
'Close file
Close #iFileNum

サブ終了

于 2013-02-19T11:51:34.320 に答える
2

Python でプログラミングして Python アプリを実行する方法を知っていると仮定すると、ファイル名をリストに入れる次の方法を試すことができます。Excel から読み取る必要がある場合は、Python で Excel ファイルを読み取るためのパッケージの 1 つを使用し、それを以下の filelist の代わりに使用できます。

import os

filelist = ["topic1",
"topic2"
]    # array of dita files

basedir = r'C:/DITA_files/'

# create files
if not os.path.exists(basedir):
    os.mkdir(basedir) 

conceptstr = '''<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN"
"concept.dtd">
<?Pub Inc?>
<concept id="concept-1-%s" xml:lang="en">
<title></title><?Pub Caret -1?>
<shortdesc></shortdesc>
<conbody>
<p></p>
</conbody>
</concept>
'''

id_len = 8
# create concept files and map
for file in filelist:
    print 'Writing ' + basedir + file + '.dita'
    cf = open(basedir + file +'.dita', 'w')
    cf.write(conceptstr) % [random.choice(string.ascii_letters) for n in xrange(id_len)]
    cf.close()

map = open(basedir + 'mymap.ditamap','wt')

map.write('<map xml:lang="en">')
for file in filelist:
    map.write(r'''<topicref href="%s.dita"/>
''' % ( register, register ) )
    map.write('</map>')
    map.close()
于 2013-02-14T01:10:49.053 に答える
1

DITA マークアップが無効であることに注意してください。すべての DITA トピックには、<title>コンテンツを含む要素が必要です。<title>要素のコンテンツとしてプレースホルダー テキストを追加したい場合があります。次に例を示します。

<title>Title goes here</title>

また、以下のマークアップは、PTC の Arbortext Editor によって追加された処理命令であるため、必要ありません。

<?Pub Inc?>
<?Pub Caret -1?>
于 2013-02-17T15:26:29.190 に答える