Java StAXを使用してXML処理命令をフォーマットして読み取るにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/404141

  •  03-07-2019
  •  | 
  •  

質問

まず、XML処理命令をフォーマットするにはどうすればよいですか:

<?processingInstructionName attribute="value" attribute2="value2"?>

StAXを使用して、 XMLStreamConstants.PROCESSING_INSTRUCTION javadoc )イベント。ただし、 XMLStreamReader から処理命令に関する情報を取得する2つのメソッドのみを提供します。 :

getPITarget()
getPIData()

javadoc これら2つの方法はあまり役に立ちません。

  1. XML形式は正しいですか?
  2. これは適切な方法ですか 解析処理命令 StAX XMLStreamReader を使用する API?
  3. getPITarget()および getPIData()を使用して複数の引数を返すにはどうすればよいですか
役に立ちましたか?

解決

  

1。XMLのフォーマットは正しいですか?

はい、ただし 処理命令には属性 -データのみ。属性のように見えるものはデータの一部であり、一部の人々はそれらを&quot; pseudo-attributes &quot;と呼びます。

  

2。これは、StAX XMLStreamReader APIを使用して処理命令を解析する適切な方法ですか?

はい。

  

3。getPITarget()およびgetPIData()を使用して複数の引数を返すにはどうすればよいですか?

「複数の引数」による場合データに含まれる可能性のある複数の擬似属性を意味します。答えは、コードでデータを解析する必要があるということです(C# split() 、およびすべての擬似の名前と値のペアのセットを取得-属性。

他のヒント

属性を持つ処理命令のこの概念は、いくつかの古いxmlマニュアルから来ていると思います。ある時点で、そのような構造化を尊重または要求するようPIに推奨することについての議論がありました。ただし、公式のxml仕様では、そのような使用法が義務付けられておらず、推奨されることもありません。

したがって、基本的には自分でコンテンツを解析する必要があります。どのような形式でもかまいませんが、属性表記を使用していることがわかっている場合は解析できます。

私が知る限り、残念ながらJava xmlパーサーまたは処理パッケージはいずれもこのような使用をサポートしていません。

scroll top