前のメモの最後で、XML ドキュメント内の特定の範囲を選択するために使用される 2 つの要素
1. 関連用語
(1) ノード: 適切にフォーマットされた XML ドキュメントは、XPath のノードもこのツリー構造のノードです。要約すると、以下の 7 種類のノードがあります:
ノード タイプ | 説明 |
XML ドキュメント ルート ノード | XML ドキュメントのルートはドキュメント ノードまたはルート ノードと呼ばれます |
要素ノード | 開始タグ、終了タグ、およびその間のすべてのコンテンツは要素ノードと呼ばれます |
属性ノード | 要素の各属性は、属性名と属性値を含む属性ノードを構成します。要素ノードへ |
名前空間ノード | XML 文書の xmlns:prefix 属性は名前空間ノードと呼ばれます 属性ノード |
テキスト ノード | XML 要素の途中にある文字 データ (文字データを含む) CDATAセグメント内 |
コメントノード | XML文書中のに含まれるコメント部分がコメントノードを構成します |
処理命令ノード | XML文書の処理命令部分処理命令ノードを構成します |
(2) 基本値 (アトミック値、アトミック値とも呼ばれます): 整数値、文字列などの単純なリテラル値を表すために特に使用されます。基本値は、親ノードも子ノードも持たないノードとみなすことができる。
(3) アイテム: アイテムは基本値またはノードを表します。
(4) ノードセットとシーケンス (Sequence): XPath 式は複数のノードを表すことができます。XPath1.0 では、複数のノードの組み合わせをノードセットと呼び、XPath2.0 では「シーケンス」という用語が追加されました。 、通常のプロジェクトまたはノード セットを表すことができます。
(5) ノード関係:
ノード関係 | 説明 | ||
親ノード | 各要素または属性には親ノードがあります | ||
子ノード Children | Elementノードは 0 、 1 があります複数の子ノード|||
同じ親ノードを持つノードを兄弟ノードと呼びます | |||
ノードの親ノード、親ノードの親ノード、ずっとルートノードへ | |||
ノードの子ノード、子ノードの子ノード... |
ancestor | 現在のノードのすべての祖先 (親、祖父など) ノードを選択します。 | |
ancestor-or-self | 現在のノードのすべての祖先(親、祖父など)ノードと現在のノード自体を選択します | |
attribute | @ | 現在のノード、現在のノードが要素ノードでない場合、属性軸方向に設定されているノードは空です |
child | 省略して書かないでください | 現在のノードの子ノードをすべて選択します |
descendant | // | 現在のノードのすべての子孫ノード (子、孫など) を選択します |
descendant-or-self | 現在のノードのすべての子孫ノード (子、孫など) を選択しますノードと現在のノード自体 | |
following | ドキュメント内の現在のノードを選択します 終了タグの後のすべてのノードには、現在のノードの子孫ノードと属性ノードは含まれません | |
following-sibling | ドキュメント内の現在のノードの終了タグの後にあるすべての兄弟ノードを選択します | |
namespace | 現在のノードが要素ノードでない場合、ノードセットにあるすべての名前空間ノードを選択します。名前空間軸の方向が空です | |
parent | .. | 現在のノードの親ノードを選択します |
preceding | 子孫を除く、ドキュメント内の現在のノードの開始タグの前にあるすべてのノードを選択します現在のノードのノードと属性ノード | |
preceding-sibling | ドキュメント内の現在のノードの開始タグの前にあるすべての兄弟を選択 Node | |
self | . | 現在のノードを選択 |
(2) ノード テスト: ノード テストは、指定された軸方向から特定の一致するノードを選択するために使用されます。XPath では、次の表に示すように、一般的に使用されるノード テスト構文が使用されます。
指定された軸方向からノード名のノードを選択します | |||
子孫::book は現在のノードのすべての book 子孫ノードを選択します(ブックの子ノード、孫ノードなどを含む) |
node() 指定された軸に一致するすべてのタイプのノードを選択します | ||
に一致するすべてのテキストタイプのノードを選択します指定された軸 | |||
子孫::text() は現在のノードのすべてのテキスト子孫ノード (テキスト サブノード、テキスト孫ノードを含む) を選択します, など) |
comment() 指定された軸に一致するすべてのコメントノードを選択します | ||
指定された軸に一致するすべての処理命令ノードを選択します | |||
ノードテストワイルドカードの意味はすべて、つまりフィルタリングなし |
/bookstore/book[1] | bookstore 要素の子要素である最初の book 要素を選択します。 |
/bookstore/book[last()] | bookstore 要素の子要素である最後の book 要素を選択します。 |
/bookstore/book[last()-1] | bookstore 要素の子要素である最後から 2 番目の book 要素を選択します。 |
/bookstore/book[position() | bookstore 要素の子要素である最初の 2 つの book 要素を選択します。 |
//title[@lang] | lang という名前の属性を持つすべての title 要素を選択します。 |
//title[@lang='eng'] | eng の値を持つ lang 属性を持つすべての title 要素を選択します。 |
/bookstore/book[price>35.00] | bookstore 要素の book 要素をすべて選択します。price 要素の値は 35.00 より大きくなければなりません。 |
/bookstore/book[price>35.00]/title | bookstore 要素内の book 要素の title 要素をすべて選択し、price 要素の値は 35.00 より大きくなければなりません。 |
3、运算符
从上面的实例中可以看到,在限定谓语中,还可以使用运算符、表达式,还有很多内置的函数供使用。这一小节先看看XPath中支持的运算符:
(1)算术运算符:加(+)、减(-)、乘(*)、除(div)、取模(mod)
算术运算符非常简单,但是需要注意几点:
A、因为减号实际上也就是中划线,而中划线在XML中是合法的标识符号,从而带来了歧义,于是XPath强制规定,使用减号的时候,需要前后各加一个空格。
B、在XPath中,所有的数值都是64位的double类型,即便直接书写成0、100;另外,XPath还有几个特殊的数值:正无穷大、负无穷大、非数。
C、在运算时,如果操作数不是数值类型,会自动转换,下面的比较运算符、逻辑运算符如果有必要也会发生相应的自动类型转换。
(2)比较运算符:等于(=)、不等于(!=)、小于()、大于或等于(>=)
需要注意的是,不像其它编程语言,这里表示相等只需要一个等于号。
(3)逻辑运算符:与(and)、或(or)
(4)集合运算符:并集(|)
4、表达式
(1)for表达式:用于循环访问序列中的每个项,并对每项进行一次计算,最后将每项计算得到的结果组合成序列后返回,语法格式如下:
for $var in sequence return rtExpression
实际上,这里的for更类似于js中的foreach。还可以使用下面的形式遍历多个序列:
for $var1 in sequence1, $var2 in sequence2 return fn($var1,$var2)
(2)if表达式:用于处理分支,根据不同条件得到不同的返回值,语法格式如下:
if (condition1)then rtVal1[else if (condition2)then rtVal2...]elseotherVal
(3)some表达式:迭代中只要有一项满足条件就返回true,否则返回false,语法格式如下:
some $var in sequence satisfies condition
(4)every表达式:迭代中只有有一项不满足条件就返回false,否则返回true,语法格式如下:
every $var in sequence satisfies condition
5、内置函数库
在XPath中还有大量的内置函数,用于增强相关功能,这些内置函数可以参考:XPath函数。我在下面也抄录一份供参考:
分类 | 函数 | 说明 | |
存取函数 | fn:node-name(node) | 返回参数节点的节点名称。 | |
fn:nilled(node) | 返回是否拒绝参数节点的布尔值。 | ||
fn:data(item.item,...) | 接受项目序列,并返回原子值序列。 | ||
fn:base-uri() fn:base-uri(node) | 返回当前节点或指定节点的 base-uri 属性的值。 | ||
fn:document-uri() fn:document-uri(node) | 返回当前节点或指定节点的 document-uri 属性的值。 | ||
错误和跟踪函数 | fn:error() fn:error(error) fn:error(error,description) fn:error(error,description,error-object) | 例子:error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high') 结果:向外部处理环境返回 http://example.com/test#toohigh 以及字符串 "Error: Price is too high"。 | |
fn:trace(value,label) | 用于对查询进行 debug。 | ||
数值函数 | fn:number(arg) | 返回参数的数值。参数可以是布尔值、字符串或节点集。 例子:number('100') 结果:100 | |
fn:abs(num) | 返回参数的绝对值。 | ||
fn:ceiling(num) | 返回大于或等于 num 参数的最小整数。 | ||
fn:floor(num) | 返回小于或等于 num 参数的最大整数。 | ||
fn:round(num) | 把 num 参数四舍五入为最接近的整数。 | ||
fn:round-half-to-even() | 返回最接近参数num的偶数 例子:round-half-to-even(0.5) 结果:0 例子:round-half-to-even(1.5) 结果:2 例子:round-half-to-even(2.5) 结果:2 | ||
字符串函数 | fn:string(arg) | 返回参数的字符串值。参数可以是数字、逻辑值或节点集。 | |
fn:codepoints-to-string(int,int,...) | 根据一个Unicode值序列序列返回字符串。 例子:codepoints-to-string((84, 104, 233, 114, 232, 115, 101)) 结果:'Thérèse' 注: この関数のパラメータは Unicode 値のシーケンスであるため、パラメータは括弧で囲む必要があります | ||
fn:string-to-codepoints(string) | 次に従って各文字に対応する Unicode 値を返します。シーケンスの文字列。 | ||
fn:codepoint-equal(comp1,comp2) | Unicode 値シーケンスの比較に従って、comp1 の値が comp2 の値と等しい場合は true を返し、そうでない場合は false を返します。 | ||
fn:compare(comp1,comp2) fn:compare(comp1,comp2,collation) | 比較規則に従って、comp1 が comp2 より小さい場合は -1 を返し、comp1 が comp2 と等しい場合は返します。 0; comp1 が comp2 より大きい場合は 1 を返します。 | ||
fn:concat(string,string,...) | 文字列の連結を返します。 | ||
fn:string-join((string,string,...),sep) | 文字列パラメータを連結した後の文字列を返すには、セパレータとして sep パラメータを使用します。 | ||
fn:substring(string,start,len) fn:substring(string,start) | 開始位置から始まる指定された長さの部分文字列を返します。最初の文字のインデックスは 1 です。 len パラメータが省略された場合は、文字列の開始位置から末尾までの部分文字列を返します。 | ||
fn:string-length(string) fn:string-length() | 指定された文字列の長さを返します。文字列パラメータがない場合は、現在のノードの文字列値の長さが返されます | ||
指定された文字列の先頭と末尾の空白を削除しますを実行し、内部の連続空白を 1 つに圧縮して結果を返します。パラメータを指定しないと、現在のノードが処理されます。 | |||
Unicode 正規化を実行します。 | |||
文字列パラメータを大文字に変換します。 | |||
文字列パラメータを小文字に変換します。 | |||
string1 の string2 を string3 に置き換えます。 例:translate('12:30','30','45') 結果: '12:45' 例:translate('12:30','03','54') 結果: '12:45' 例: translation('12:30','0123','abcd') 結果: 'bc:da'
| |||
例:escape-uri("http://example.com/test#car", true()) 結果:"http%3A%2F%2Fexample.com%2Ftest#car" 例:escape-uri("http://example.com/test#car", false()) 結果:http://example.com/test#car 例:escape-uri(" http://example.com/~bébé", false()) 結果: "http://example.com/~b%C3%A9b%C3%A9"
| |||
string1 に string2 が含まれる場合は true を返し、それ以外の場合は false を返します。 | |||
string1 が string2 で始まる場合は true を返し、それ以外の場合は false を返します。 | |||
string1 が string2 で終わる場合は true を返し、それ以外の場合は false を返します。 | |||
string1 に出現する前の string2 の部分文字列を返します。 | |||
string1 に string2 が出現した後の部分文字列を返します。 | |||
文字列パラメータが指定されたパターンと一致する場合は true を返し、それ以外の場合は false を返します。 | |||
指定されたパターンを replace パラメータで置換し、結果を返します。 | |||
例: tokenize("XPath is fun", "s+") | 結果: ("XPath", "is", "fun") | ||
任意のURI関数 | fn:resolve-uri(relative,base) | ||
論理関数 | fn:boolean(arg) | 数値、文字列、またはノードセットのブール値を返します。 | |
fn:not(arg) | まず、boolean() 関数を使用してパラメーターをブール値に復元し、次にそれを否定します。 | ||
fn:true() | ブール値 true を返します。 | ||
fn:false() | ブール値 false を返します。 | ||
日付時刻関数 | fn:dateTime(date,time) | パラメータを日付と時刻に変換します。 | |
fn:years-from-duration(datetimedur) | 標準の字句表記で表現された、パラメーター値の年の部分の整数を返します。 | ||
fn:months-from-duration(datetimedur) | 標準語彙表記で表現された、パラメーター値の月の部分の整数を返します。 | ||
fn:days-from-duration(datetimedur) | 標準の語彙表記で表現された、パラメーター値の日数部分の整数を返します。 | ||
fn:hours-from-duration(datetimedur) | パラメーター値の時間の部分を、標準的な語彙表記で表現された整数として返します。 | ||
fn: minutes-from-duration(datetimedur) | パラメーター値の分の部分を、標準の字句表記で表現された整数として返します。 | ||
fn:seconds-from-duration(datetimedur) | 標準語彙表記で表現された、パラメーター値の分の部分の 10 進数を返します。 | ||
fn:year-from-dateTime(datetime) | パラメーターのローカル値の年の部分の整数を返します。 | ||
fn:month-from-dateTime(datetime) | パラメーターのローカル値の月の部分の整数を返します。 | ||
fn:day-from-dateTime(datetime) | パラメーターのローカル値の日の部分の整数を返します。 | ||
fn:hours-from-dateTime(datetime) | パラメーターのローカル値の時間の部分を整数として返します。 | ||
fn: minutes-from-dateTime(datetime) | パラメーターのローカル値の分の部分の整数を返します。 | ||
fn:seconds-from-dateTime(datetime) | パラメーターのローカル値の秒部分の 10 進数を返します。 | ||
fn:timezone-from-dateTime(datetime) | パラメータのタイムゾーン部分が存在する場合はそれを返します。 | ||
fn:year-from-date(date) | パラメーターのローカル値で年を表す整数を返します。 | ||
fn:month-from-date(date) | パラメーターのローカル値で月を表す整数を返します。 | ||
fn:day-from-date(date) | パラメータのローカル値で日を表す整数を返します。 | ||
fn:timezone-from-date(date) | パラメーターのタイムゾーン部分が存在する場合、それを返します。 | ||
fn:hours-from-time(time) | パラメータのローカル値の時間の部分を表す整数を返します。 | ||
fn: minutes-from-time(time) | パラメーターのローカル値の分の部分を表す整数を返します。 | ||
fn:seconds-from-time(time) | パラメータのローカル値の秒部分を表す整数を返します。 | ||
fn:timezone-from-time(time) | パラメータのタイムゾーン部分が存在する場合はそれを返します。 | ||
fn:adjust-dateTime-to-timezone(datetime,timezone) | timezone パラメーターが空の場合は、タイムゾーンなしで dateTime を返します。それ以外の場合は、タイムゾーンを含む dateTime が返されます。 | ||
fn:adjust-date-to-timezone(date,timezone) | timezone パラメーターが空の場合は、タイムゾーンなしの日付を返します。それ以外の場合は、タイムゾーンを含む日付が返されます。 | ||
fn:adjust-time-to-timezone(time,timezone) | timezone パラメーターが空の場合は、タイムゾーンなしの時間が返されます。それ以外の場合は、タイムゾーン付きの時刻を返します。 | ||
QName 関連関数 | fn:QName() | ||
fn:local-name-from-QName() | |||
fn:namespace-uri-from -QName () | |||
fn:namespace-uri-for-prefix() | |||
fn:in-scope-prefixes() | |||
fn:resolve-QName() | |||
fn:name() fn:name(nodeset) | 現在のノードまたは指定されたノード セット内の最初のノードの名前を返します。 | ||
fn:local-name() fn:local-name(nodeset) | 現在のノードの名前、または指定されたノード セット内の最初のノードの名前を名前空間プレフィックスなしで返します。 | ||
fn:namespace-uri() fn:namespace-uri(nodeset) | 現在のノードまたは指定されたノード セット内の最初のノードの名前空間 URI を返します。 | ||
fn:lang(lang) | 現在のノードの言語が指定された言語と一致する場合、true を返します。 例: Lang("en") は ... の場合 true です例: Lang("de") は ... | ||
fn:root() fn:root(node) | 現在のノードまたは指定されたノードが属するノード ツリーのルート ノードを返します。ノードが所属します。通常はドキュメント ノードです。 | ||
コンテキスト関数 | fn:position() | 現在処理中のノードのインデックス位置を返します。 例: //book[position() 結果: 最初の 3 つの book 要素を選択します | |
fn:last() | 処理されたノード リスト内のアイテムの数を返します。 例: //book[last()] 結果: 最後の書籍要素を選択します | ||
fn:current-dateTime() | 現在の dateTime (タイムゾーン付き) を返します。 | ||
fn:current-date() | 現在の日付 (タイムゾーン付き) を返します。 | ||
fn:current-time() | 現在時刻 (タイムゾーン付き) を返します。 | ||
fn:implicit-timezone() | 暗黙的なタイムゾーンの値を返します。 | ||
fn:default-collation() | デフォルトの照合順序の値を返します。 | ||
fn:static-base-uri() | base-uri の値を返します。 | ||
シーケンス関数 | 一般的なシーケンス関数 | fn:index-of((item,item,...),searchitem) | searchitem パラメータに等しい項目シーケンス内の位置を返します。 例:index-of ((15, 40, 25, 40, 10), 40) 結果: (2, 4) |
fn:remove((item,item,...), Position) | position パラメータで指定された項目を削除しながら、項目パラメータから構築された新しいシーケンスを返します。 | ||
fn:empty(item,item,...) | パラメータ値が空のシーケンスの場合は true を返し、それ以外の場合は false を返します。 | ||
fn:exists(item,item,...) | パラメータ値が空のシーケンスでない場合は true を返し、それ以外の場合は false を返します。 | ||
fn:distinct-values((item,item,...),collation) | 一意の個別の値を返します。 例: unique-values((1, 2, 3, 1, 2)) 結果: (1, 2, 3) | ||
fn:insert-before((item,item,...),pos,inserts) | item パラメータによって構築された新しいシーケンスを返します。同時に、insert パラメータの値を、パラメータによって指定された位置に挿入します。 pos パラメータ。 | ||
fn:reverse((item,item,...)) | 指定された項目の逆の順序を返します。 | ||
fn:subsequence((item,item,...),start,len) | start パラメータで指定された位置にある項目シーケンスを返します。シーケンスの長さは len パラメータで指定されます。最初の項目の位置は 1 です。 | ||
fn:unowned((item,item,...)) | 実装によって決定された順序で項目を返します。 | ||
容量テスト関数 | fn:zero-or-one(item,item,...) | 項目が 0 個または 1 個含まれている場合はパラメーターを返し、それ以外の場合はエラーを生成します。 | |
fn:one-or-more(item,item,...) | パラメータに 1 つ以上の項目が含まれる場合はパラメータを返し、それ以外の場合はエラーが生成されます。 | ||
fn:exactly-one(item,item,...) | パラメータに項目が含まれる場合はパラメータを返し、それ以外の場合はエラーが生成されます。 | ||
比較関数 | fn:deep-equal(param1,param2,collation) | param1とparam2が等しい(deep-equal)場合はtrueを返し、そうでない場合はfalseを返します。 | |
Total 関数 | fn:count((item,item,...)) | ノードの数を返します。 | |
fn:avg((arg,arg,...)) | パラメータ値の平均を返します。 | ||
fn:max((arg,arg,...)) | パラメータの最大値を返します。 | ||
fn:min((arg,arg,...)) | パラメータの最小値を返します。 | ||
fn:sum(arg,arg,...) | 指定されたノードセット内の各ノードの値の合計を返します。 | ||
シーケンス生成関数 | fn:id((string,string,...),node) | ||
fn:idref((string,string,...),node) | |||
fn:data((item1,item2,...)) | item1、item2などの値で構成されるシーケンスを返します。 | ||
fn:doc(URI) | |||
fn:doc-available(URI) | doc() 関数がドキュメント ノードを返す場合は true を返し、それ以外の場合は false を返します。 | ||
fn:collection() fn:collection(string) |
明らかに、これらの組み込み関数をここに置く目的は、暗記を強制することではなく、単に必要なときに辞書で調べることです。 (XQuery 1.0 と XPath はこれらの組み込み関数を共有しています。何か用事がある場合はチェックしてみると良いでしょう。見覚えのあるものです)。

ブール属性は、値なしでアクティブ化されるHTMLの特別な属性です。 1.ブール属性は、無効化された入力ボックスを無効にするなど、存在するかどうかによって、要素の動作を制御します。 2.彼らの実用的な原則は、ブラウザが異なっているときに属性の存在に応じて要素の動作を変更することです。 3.基本的な使用法は、属性を直接追加することであり、高度な使用法はJavaScriptを介して動的に制御できます。 4.一般的な間違いは、値を設定する必要があると誤って考えており、正しい執筆方法は簡潔にする必要があります。 5.ベストプラクティスは、コードを簡潔に保ち、ブールのプロパティを合理的に使用して、Webページのパフォーマンスとユーザーエクスペリエンスを最適化することです。

HTMLコードは、オンラインバリデーター、統合ツール、自動化されたプロセスを使用するとクリーンになります。 1)w3cmarkupvalidationserviceを使用して、HTMLコードをオンラインで確認します。 2)リアルタイム検証のためにVisualStudiocodeにhtmlhint拡張機能をインストールして構成します。 3)HTMLTIDYを使用して、建設プロセスでHTMLファイルを自動的に検証およびクリーニングします。

HTML、CSS、およびJavaScriptは、最新のWebページを構築するためのコアテクノロジーです。1。HTMLはWebページ構造を定義します。2。CSSはWebページの外観に責任があります。

HTMLの機能は、Webページの構造とコンテンツを定義することであり、その目的は、情報を表示するための標準化された方法を提供することです。 1)HTMLは、タイトルやパラグラフなどのタグや属性を使用して、Webページのさまざまな部分を整理しています。 2)コンテンツとパフォーマンスの分離をサポートし、メンテナンス効率を向上させます。 3)HTMLは拡張可能であり、カスタムタグがSEOを強化できるようにします。

HTMLの将来の傾向はセマンティクスとWebコンポーネントであり、CSSの将来の傾向はCSS-in-JSとCSShoudiniであり、JavaScriptの将来の傾向はWebAssemblyとServerLessです。 1。HTMLセマンティクスはアクセシビリティとSEO効果を改善し、Webコンポーネントは開発効率を向上させますが、ブラウザの互換性に注意を払う必要があります。 2。CSS-in-JSは、スタイル管理の柔軟性を高めますが、ファイルサイズを増やす可能性があります。 CSShoudiniは、CSSレンダリングの直接操作を可能にします。 3. Webassemblyブラウザーアプリケーションのパフォーマンスを最適化しますが、急な学習曲線があり、サーバーレスは開発を簡素化しますが、コールドスタートの問題の最適化が必要です。

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1
使いやすく無料のコードエディター

ホットトピック









