問題タブ [tag-soup]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android が間違ったクラスを使用している
私は自分のプロジェクトの 1 つで TagSoup を使用しており、ネストされたリスト タグに対処するために HTMLSchema.java にいくつかの変更を加えました。これらの変更をテストしたところ、まったく効果がありませんでした。Java スタンドアロン アプリで同じ変更をテストしたところ、意図したとおりに機能しました。
アプリをデバッグしようとしたときに、デバッガーで正しい行番号が表示されないことに気付いたので、プロジェクトを再ビルドし、IDE を再起動し、Android デバイスを再起動し、 PC、新しい Android プロジェクトを作成しますが、すべて役に立ちません。
一部のクラスからすべてのコードを削除しましたが、アプリは以前と同じように実行されたので、Android は明らかに、アプリでデプロイしたクラスとは異なるクラスを使用していました。Android テスト プロジェクトを、通常の MainActivity、レイアウト、ドローアブルを除くすべてのものから空にし、TagSoup クラスと TagSoup で解析するコードを追加しましたが、それでも「私の」TagSoup クラスは使用されませんでした。これは、2 台の 4.4.2 Nexus デバイスと 4.1.2 を実行する Note 2 でテストしました。
パッケージ名を org.ccil.cowan.tagsoup から別の名前 (org.ccil.cowan.tagsoup2 など) に変更した場合にのみ、アプリでデプロイされたクラスが使用されました。
私の質問は簡単です:一体何が起こっているのですか?
java - DocumentBuilder が必要なときに SAX パーサーを使用する
XMLBeamは XML から POJO への優れたアンマーシャラー (XPath 経由) ですが、DocumentBuilder または DocumentBuilderFactory のみを構成できます。
TagSoupは、厄介な HTML ドキュメントを XML であるかのように解析できる優れた SAX パーサーです。
XMLBeam の XML パーサーとして TagSoup を使用して、XPath を使用して厄介な HTML を POJO に非整列化できるようにします。
DocumentBuilder または DocumentBuilderFactory として使用できるように、SAX パーサーを変換またはラップする方法はありますか?
jaxb - HTMLでJAXBを使用するには?
JAXB を使用して、厄介な HTML を Java オブジェクトにアンマーシャルしたいと考えています。(私はJava 7を使用しています)。
Tagsoup は、厄介な HTML を処理できる SAX 準拠の XML パーサーです。
HTML のアンマーシャリングに Tagsoup を使用するように JAXB を設定するにはどうすればよいですか?
System.setProperty("org.xml.sax.driver", "org.ccil.cowan.tagsoup.Parser"); を設定してみました。
XMLReader を作成すると、Tagsoup が使用されますが、JAXB を使用する場合は使用されません。
com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl は、XML の解析に DOM または SAX を使用しますか?
JAXB に SAX を使用するように指示するにはどうすればよいですか?
TagSoup を SAX 実装として使用するように JAXB に指示するにはどうすればよいですか?
Blaiseの提案に従って、以下を試しましたが、最後の行でSAXParseExceptionを取得しました。XMLReader のみを使用した場合、解析は問題ありません。
java - tagsoup が適切な xml を壊す
xml ファイルのクリーニング 予期しない結果が得られました。tagsoup が一部のプロパティを孤立させ、親タグを閉じるのが早すぎました。また、親タグの名前を小文字にします。
タグスープの前:
タグスープの後:
私はこのライブラリを使用する Java プロジェクトにいます:
私はJava 6を使用しています。
その手がかりはありますか?
有効な xml ファイルの望ましい出力は、同じファイルになります(詳細を変更するだけで、構造は変更しない可能性があります)。
scala - 要素を最小化せずに HTML を解析する + 変換
ユーザーが提供した HTML を受け取り、それを別の HTML コードに変換する Web アプリケーション用のプラグインを作成しています。私はほとんどの場合、指定されたクラス/コンテンツ (「ディレクティブ」) を持つすべての要素を見つけて、それを別のものに書き換えたいと考えています。私は Scala 2.11.1 と TagSoup パーサーを使用して、XML に適していないコードを処理しています。
現時点での私の主な問題は、呼び出しがXML.parseString("<div></div>")
yield することです:
このタグを最小化しないままにしたいので、この動作は結果のページ (つまりiframe
、s、 s など) を文字化けさせます。div
読み込み段階でこの動作を回避する方法はありますか?
2 番目の問題は、TagSoup に関連しています。次のようなコード ブロックを解析する場合:
TagSoup は次のように解析します。
これらの問題を回避するためにできることはありますか? <script>
これまでのところ、すべての要素を最小化されないように書き換えたり、タグのコンテンツからすべてのエンティティを削除したりするなど、「厄介な」ソリューションしか思いつきませんでした。
TagSoup の解析は次のように行われます。
java - TagSoup と改行なしのスペース値を使用した Groovy XmlSlurper
tagsoup にXmlSlurper
裏打ちされたGroovy を使用して HTML4 を解析していますParser
。
ノードの を正常に取得していますが、別の値との等価性をテストしようとするとtext()
、HTMLスペースが問題になります。
具体的に.trim()
は、すべての空白の文字列を実際にトリムするわけではありません。値の両側の文字は空白 (以下のコードを参照)のように見えますがString.trim()
、期待どおりにトリミングされていません。コード サンプルからわかるようCharacter.isSpaceChar()
に、文字列の最初の文字は空白文字であると判断されます。
String.trim()
から取得したこの値をトリミングしないのはなぜXmlSlurper
ですか?
収量:
私は使用していますGroovy Version: 2.3.6 JVM: 1.8.0 Vendor: Oracle Corporation OS: Mac OS X
maven - Mavenの依存関係が追加されていても、Intellijはtagsoup名前空間を解決できません
プロジェクトの 1 つで TagSoup に問題がありました。maven 依存関係を pom に追加しても、IntelliJ 13 Ultimate は名前空間を解決できないと叫びますorg.ccil.cowan.tagsoup.Parser
(「ccil」ビットを指します)。
そこで、新しい空の Maven プロジェクトを作成し、それに 2 つの依存関係 (saxon9 と tagsoup1.2) を追加しました。
そして、単純なクラスを作成しました:
結果:
- saxon と tagsoup の両方がローカル リポジトリにダウンロードされています。
- ターミナルにビルドします(
mvn clean install
) - IntelliJ では、saxon の問題は問題なく解決されています
- IntelliJ では、tagsoup が名前空間の「ccil」部分で「シンボルを解決できません」というエラーでスローされます。
- 上記のエラーのため、IntelliJ でビルドされません
何か案は?tagsoup の何らかの依存関係がありませんか (そのような依存関係については、tagsoup Web サイトで何も確認できません)。ありがとう。
java - TagSoup を使用して DOM を作成するためのページの URL を解析すると、java IOException が発生する
次のリンクを使用して、URL の DOM ツリーを作成しようとしています (この例外を返す特定の URL です)。
しかし、この URL に対してプログラムを実行すると、p.parse(new InputSource(url));
理由がわからないという例外が表示されます。原因は、これまでのところ何の問題もありませんでした。
ヒントはありますか?
clojure - Enlive/Tagsoup/JSoup で HTML5 を解析する
HTML5 では<meta>
本文にタグを表示できますが、Enlive はこれをサポートしていないようです:
このテストは失敗しますが、メタ タグを削除すると成功します。
この古いスレッドにより、問題を引き起こしているのはメタ タグであることがわかりました。
Enlive は Tagsoup に依存していることに気付きましたが、JSoup (HTML5 をサポートすると主張している) に切り替えると、同じ結果が得られます。
java - 名前空間を認識しないパーサーを使用してJavaでXSL変換を行う方法は?
tagsoup as (SAX)を使用XMLREader
し、名前空間機能を に設定しますfalse
。このパーサーはTransformer
、SAX Source としてフィードするために使用されます。完全なコード:
これにより、次のような結果になります。
問題は、タグ名が空白であることです。ContentHandler#startElement
XMLReader (tagsoup パーサー) は、SAX メソッドおよびで空の namespaceURI と空のローカル名を報告しますContentHandler#endElement
。名前空間を認識しないパーサーの場合、これは許可されます ( Javadocを参照)。
XMLFilter
qName の値を localName にコピーする a を追加すると、すべてうまくいきます。ただし、これは私が望んでいるものではありません。これは「箱から出して」動作することを期待しています。私は何を間違っていますか?任意の入力をいただければ幸いです。