-4

次のテキストは、非標準のタグ名と値を使用しているため、有効な XML ではありません...

<?xml version="1.0" encoding="utf-8"?>
<Command>
    <Priority value='1'/>
    <DeviceId value='1111'/>
    <TimeOut value='30000'/>
    <Command value='GetState'/>
    <Value value='12465767890'/>
    <Number value='1'/>
    <State value='None'/>
</Command>

Java アプリケーションでこの非標準の XML を解析するにはどうすればよいですか?

4

2 に答える 2

3

では、「準拠していない」または「標準ではない」とはどういう意味ですか...?

単一引用符を使用しているため、準拠していないことを意味している場合...

まず最初に、一重引用符の使用は既に XML に準拠していると確信していますか? ただし、標準の XML 解析ライブラリを使用する場合は、すべての'文字を"文字に置き換えるなどして、最初に入力をより準拠させることができます。

それ以外の場合は、標準の XML 解析ライブラリのコンポーネントのいくつかを試しextendて、解析コードを上書きして、属性と値のペアの単一引用符を検索してみてください。

どちらもあまりきれいではありませんが、うまく機能します。

属性と値のペアが実際には属性名の「値」と呼ばれるため、準拠していないことを意味している場合...

それは問題ではありません - 有効な文字を使用していれば、属性を好きなように呼び出すことができます。確かに、XML を理解しやすくするために意味のある名前を付ける必要がありますが、「値」と呼んでも問題はありません。

同じことがタグ名にも当てはまります。XML には標準のタグ名はありません。XML は、無効な文字を使用しないため、任意のタグ名と属性名を使用できるように設計されています。あなたの場合、すべて英語の文字なので、有効です。

終了タグがないことについて話している場合...

タグにコンテンツを保存する必要がない場合、 ` の形式で単一タグを使用することは有効な XML です。コンテンツをその中に保存する場合は、開始タグと終了タグのみが必要です。タグの場合、それらは属性と値のペアを持つ単一のタグであり、これは完全に有効です。


最終的には、可能であれば、入力が生成されている場所から入力を修正するのが最善の方法です。XML 準拠の出力を記述していない場合、XML ジェネレーターとしてはあまり優れていません。

于 2012-10-31T09:22:13.700 に答える
0

JDOM では次のようになります。

 Element rootElement = new Element("EivCmd");
        Document doc = new Document(rootElement);
        Element Priority = new Element("Priority");
        rootElement.addContent(Priority);
        Priority.setAttribute(new Attribute("value", "1"));
于 2012-10-31T09:44:50.987 に答える