6

使用xmllint --shell,我执行

chapter > cat * 
 -------
<title>Getting to Know Penguins</title>
 -------
<abstract>
      <para>Penguins are cute.</para>
    </abstract>
 -------
<sect1>
      <title>The Head</title>
      <para>...</para>
    </sect1>
 -------
<sect1 id="penguin.coat">
      <title>The Coat</title>
      <para>...</para>
    </sect1>

chapter > ls
ta-        5      
---        1 title
ta-        5      
---        3 abstract
ta-        5      
---        5 sect1
ta-        5      
c--       17 
ta-        5      
-a-        5 sect1
ta-        3  

“ta”、“c”和“a”代表什么,字符代表什么?

4

1 回答 1

4

您寻求的答案可在以下位置找到:

libxml2-2.9.0::debugXML.c:1652: xmlLsOneNode(FILE *output, xmlNodePtr 节点)

我已经按节点类型分解了输出,请注意,为方便起见,下面的后两个字符显示为“--”。实际上,对于除 XML_NAMESPACE_DECL 之外的所有节点类型,如果 node->properties 不为 NULL,则第二个字符为“a”,如果 node->nsDef 不为 NULL,则第三个字符为“n”。最后,#NC# 建议节点具有的子节点数量的数字值,而#CL# 是节点内容长度的数字值。

XML_ELEMENT_NODE:
--- #NC# [[(节点->ns->前缀):](节点->名称)]

XML_ATTRIBUTE_NODE:
a-- #NC# [(节点->名称)]

XML_TEXT_NODE:
t-- #CL# [xmlDebugDumpString(node->content)...|"(NULL)"]
    * 内容的字符串值最多40个字符,有的
    * 换人。空格 (' ') 替换空白字符
    * XML RFC 允许:(0x20, 0x9, 0xA, 0xD)。任何角色
    * HEX 值为 0x80 或更大以字符串形式打印:“#XXXX”


XML_CDATA_SECTION_NODE:
C--#CL#

XML_ENTITY_REF_NODE:
e-- 1 [(节点->名称)]

XML_ENTITY_NODE:
E-- 1 [(节点->名称)]

XML_PI_NODE:
p--#CL#

XML_COMMENT_NODE:
c--#CL#

XML_DOCUMENT_NODE:
d--#NC#

XML_HTML_DOCUMENT_NODE:
h--#NC#

XML_DOCUMENT_TYPE_NODE:
T-- 1

XML_DOCUMENT_FRAG_NODE:
F-- 1

XML_NOTATION_NODE:
N-- 1

XML_NAMESPACE_DECL:
n 1 [(node->prefix)|"default"] -> (node->href)

默认:
?-- 1
于 2012-11-10T01:29:53.157 回答