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