Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaStax格式化和读取XML处理指令?_Java_Xml_Stax - Fatal编程技术网

如何使用JavaStax格式化和读取XML处理指令?

如何使用JavaStax格式化和读取XML处理指令?,java,xml,stax,Java,Xml,Stax,首先,如何格式化XML处理指令,是: <?processingInstructionName attribute="value" attribute2="value2"?> 对这两种方法的解释不是很有帮助 XML格式正确吗 这样做对吗 解析处理指令 使用StAXXMLStreamReader API 如何使用getPITarget()和getPIData()返回多个参数 1.XML格式正确吗 是,但是请注意,a没有——只有数据。看起来像属性的东西是数据的一部分,有些人称它们为“伪属

首先,如何格式化XML处理指令,是:

<?processingInstructionName attribute="value" attribute2="value2"?>
对这两种方法的解释不是很有帮助

  • XML格式正确吗
  • 这样做对吗 解析处理指令 使用StAX
    XMLStreamReader
    API
  • 如何使用
    getPITarget()
    getPIData()
    返回多个参数
  • 1.XML格式正确吗

    ,但是请注意,a没有——只有数据。看起来像属性的东西是数据的一部分,有些人称它们为“
    伪属性”

    2.这是使用StAX XMLStreamReader API解析处理指令的正确方法吗

    3.如何使用getPITarget()和getPIData()返回多个参数


    如果“多个参数”是指数据中可能包含的多个伪属性,那么答案是代码必须解析数据(使用一些标准字符串方法,如C#,并检索所有伪属性的名称-值对集。

    我认为具有属性的处理指令的概念来自一些旧的xml手册。有一次讨论了建议PI遵守或要求这种结构。然而,官方xml规范国际标准化组织从未强制或甚至建议过此类使用

    所以基本上你必须自己解析内容——它们可以是任何格式,但如果你知道它使用属性符号,你可以解析它

    据我所知,不幸的是,没有一个Java xml解析器或处理包支持这种用法。

    虽然在技术上是正确的,但一些流行的库现在像预期的那样解析处理指令伪属性。后续示例解析以下xml处理指令以获得
    hre的值f
    psedoo属性:

    <?xml-stylesheet type="text/xsl" href="markdown.xsl"?>
    
    撒克逊人 使用:

    <?xml-stylesheet type="text/xsl" href="markdown.xsl"?>
    
    import static net.sf.saxon.tree.util.ProcInstParser.getPseudoAttribute;
    import org.xml.sax.helpers.DefaultHandler;
    
    public class ProcessingInstructionHandler extends DefaultHandler {
    
      @Override
      public void processingInstruction( final String target, final String data ) {
        System.out.println( getPseudoAttribute( data, "href" ) );
      }
    }