2011-12-20 16 views
0

私のプロジェクトで使用しているsample XML fileを参照してください。 XMLファイルの "オブジェクト"に従ってこのファイルを分割(分割)する必要があります。幸運にも、XSLTを使用してファイルを分割するtoolが利用可能です。ツール分割がハイブ/キーなどの情報が欠落しているproperly-提出しないXSLTを使用してXMLファイルを分割する方法は?

<registry_object id="oval:org.mitre.oval:obj:16243" version="1" xmlns="http://oval.mitre.org/XMLSchema/oval-definitions-5#windows"> 
    <hive>HKEY_LOCAL_MACHINE</hive> 
    <key>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\IPFS</key> 
    <name>DisplayName</name> 
</registry_object> 

below-のようなオブジェクトがフォームである場合XSL here

を参照してください。それだけで正常に動作

<registry_object id="oval:org.mitre.oval:obj:16179" version="2" comment="Uninstall\IPFS\DisplayName" xmlns="http://oval.mitre.org/XMLSchema/oval-definitions-5#windows"> 
    <set xmlns="http://oval.mitre.org/XMLSchema/oval-definitions-5"> 
    <object_reference>oval:org.mitre.oval:obj:16050</object_reference> 
    <object_reference>oval:org.mitre.oval:obj:16243</object_reference> 
    </set> 
</registry_object> 

below-のようなオブジェクトがフォームである場合Sample outputthis

を参照してください。 thisを参照してください。私は、XSLTのことは知らないので

<xsl:when test="contains($inputId, ':obj:')"> 
<xsl:for-each select="$definitionDoc//oval-def:objects/child::*[@id = $inputId]/descendant::*/*:object_reference/text() | $definitionDoc//oval-def:objects/child::*[@id = $inputId]/descendant::*/*:filter/text() | 
       $definitionDoc//oval-def:objects/child::*[@id = $inputId]/descendant::*/*:var_ref/text() | 
       $definitionDoc//oval-def:objects/child::*[@id = $inputId]/descendant::*/@var_ref">    

       <xsl:variable name="returnedIds" select="ovalfn:getAllIds(($processedIds | $inputId), .)"/> 
       xsl:sequence select="$returnedIds | $processedIds | $inputId | ."/> 
      </xsl:for-each> 

IS-オブジェクトに応じてファイルを分割するために使用されているコードは、私はこの問題を解決する方法がわかりません。誰かがこれがどのように解決できるかについていくつかのガイダンスを提供してもらえますか?私は、私は彼らが

+1

れたままのxslクエリを更新することにより、それを修正した「object_reference」を持っていないとき、それは「オブジェクト」を抽出できるように、XSLコードの上に更新する必要があると思います2つのケースのそれぞれでどのような出力が生成され、代わりにどの出力を生成する必要がありますか?また、完全なXML文書(可能な限り最小限に抑えてください)と完全なXML変換を提供する必要はありません。したがって、XML文書(提供されていない)のいずれかを使用して変換(提供されていません)が生成するクレームを再現する方法はありません(指定されていない/説明されていない)ために望ましくない出力(提供されていない)が出力されますが、2番目のXML文書では、何らかの理由で結果が提供されません。お願いします。不足しているすべてのデータを提供してください –

+0

私はサンプル文書とXSLをリンクして提供しました。私の質問の最初の段階で "sample XML file"と "here"をクリックすると、参考XML文書とXSLを見ることができます。私は今良いと悪い結果で質問を更新しました – user837208

答えて

0

私はそう

$definitionDoc//oval-def:objects/child::*[@id = $inputId]/descendant::*/. 
関連する問題